私はさまざまな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();
}
}