我研究不同的 DI 模式。
现在我对惰性生命周期实现感兴趣。
例如,我想编写一个代理类,将工厂隐藏在服务接口后面。
任何现有的 IoC 容器 (.NET) 都可以在运行时动态创建这种代理类吗?
interface IService
{
void Foo();
void Bar();
}
class ServiceFactoryProxy : IService
{
private readonly Func<IService> _factory;
public ServiceFactoryProxy(Func<IService> factory)
{
if (factory == null) throw new ArgumentNullException("factory");
_factory = factory;
}
public void Foo()
{
_factory().Foo();
}
public void Bar()
{
_factory().Foo();
}
}
以下是在 Castle 中完成此操作的方法:
http://litemedia.info/lazy-loading-property-with-castle-dynamicproxy2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)