【发布时间】:2010-11-25 16:58:40
【问题描述】:
我正在使用 Unity IoC 容器,我需要拦截对某个基本接口的任何对 Resolve 的调用,并运行我自己的自定义代码来构造这些类型。
也就是说,在下面的示例代码中,当我调用container.Resolve<IFooN>()时,如果它没有得到具体实现类型的实例,则调用MyFactoryFunction构造一个,否则我希望它返回缓存副本。
标准 Unity 容器无法构造这些对象(更新:,因为它们是 .NET 远程处理对象,因此本地计算机上的任何程序集中都不存在具体类),并且我不想预先创建它们并将它们存储在 RegisterInstance 中。
interface IFoo : IBase { ... }
interface IFoo2 : IBase { ... }
...
container.Resolve<IFoo2>();
...
IBase MyFactoryFunction(Type t)
{
...
}
我假设我可以创建一个 Unity 扩展来执行此操作,但我想知道是否已经有可以借用的解决方案。
【问题讨论】:
标签: c# unity-container ioc-container unity2.0