读书人

有什么办法在一个已打包的类的实例中保

发布时间: 2012-08-09 15:59:22 作者: rapoo

有什么办法在一个已封装的类的实例中保存一个对象
假设有类CA,CA是第三方的不是我写的,现在我想在CA的实例中再保存一个对象

有种思路是,为每个实例找到一个唯一标识,然后用像Dictionary这种key value的集合存放,如:
定义一个静态的Dictionary<>,key放CA的实例,value放要保存的对象。但这样有个很大的问题就是CA实例一直保存在Dictionary就不会自动释放,这样很不好。

求解决方式,谢谢!!!

[解决办法]
一、hashtable或dictionary都可以,ca使用完毕调用ca.Dispose()前先从hashtable或dictionary移除。

二、新建CB类
class CB
{
CA ca;
object yourObject;
}
[解决办法]
关键 CA 实例谁在用,如果只是你自己用,那么直接继承就好了

如果不是的话,那么就没什么好办法了。接口注入也是可以考虑的但很麻烦,毕竟运行的上下文
你是控制不了的。
[解决办法]
如果CA是可继承的
那么你可以应用适配器

class CAdapter:CA
{
CA _ca;
object yourObject;
}

这样你这个也可以和CA类一样使用

如果CA已经声明sealed了,那就要看实际项目了

读书人网 >C#

热点推荐