我研究不同的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();
}
}