假设有类CA,CA是第三方的不是我写的,现在我想在CA的实例中再保存一个对象有种思路是,为每个实例找到一个唯一标识,然后用像Dictionary这种key value的集合存放,如:
定义一个静态的Dictionary<>,key放CA的实例,value放要保存的对象。但这样有个很大的问题就是CA实例一直保存在Dictionary就不会自动释放,这样很不好。求解决方式,谢谢!!!

解决方案 »

  1.   

    一、hashtable或dictionary都可以,ca使用完毕调用ca.Dispose()前先从hashtable或dictionary移除。二、新建CB类
    class CB
    {
       CA ca;
       object yourObject;
    }
      

  2.   

    如果CA是可继承的
    那么你可以应用适配器class CAdapter:CA
    {
       CA _ca;
       object yourObject;
    }这样你这个也可以和CA类一样使用如果CA已经声明sealed了,那就要看实际项目了
      

  3.   

    CA类的实例化也不能控制,所以继承也不能突然有个想法,CA实例的指针能不能作为一个唯一标识???
      

  4.   

    在网上找到这样一种办法获取其地址,不知这样可行不                Int64 p = 0;
                    unsafe
                    {
                        GCHandle handle = GCHandle.Alloc(tLayer);
                        p = handle.AddrOfPinnedObject().ToInt64();
                        handle.Free();
                    }PS:我没学过C++,指针神马的完全不懂
      

  5.   

    说明一下,tLayer是CA的实例,p是要获取的内存地址