在我的程序中,有一个地方需要访问从工厂解析的单例并附加其事件:
void MyMethod()
{
myFactory.Resolve<MySingleton>().DoWork += WorkMethod;
}
问题是MyMethod可以执行多次,但是我只想附加到事件一次(否则我将得到多个调用)。所以我只想在以前没有依恋的时候依依。
还有什么比
myFactory.Resolve<MySingleton>().DoWork -= WorkMethod;
myFactory.Resolve<MySingleton>().DoWork += WorkMethod;
最佳答案
如果已经为单例调用了MyMethod
,应该记住一些标志呢?
object myCachedSingleton = null;
void MyMethod()
{
var s = myFactory.Resolve<MySingleton>();
if (myCachedSingleton == s) return;
myCachedSingleton = s;
myCachedSingleton.DoWork += WorkMethod;
}
关于c# - 附加到工厂实例化的单例事件-什么是干净的方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1730855/