相关疑难解决方法(0)

在Unity中有TryResolve吗?

ResolutionFailedException如果Resolve失败,怎么能让Unity不扔?

有类似的东西TryResolve<IMyInterface>吗?

var container = new UnityContainer();
var foo = container.TryResolve<IFoo>();
Assert.IsNull(foo);
Run Code Online (Sandbox Code Playgroud)

c# ioc-container unity-container

14
推荐指数
2
解决办法
8038
查看次数

Unity的自定义对象工厂扩展

我正在使用Unity IoC容器,我需要拦截对Resolve的任何调用以获取某个基本接口,并运行我自己的自定义代码来构造这些类型.

换句话说,在下面的示例代码中,当我调用时container.Resolve<IFooN>(),如果它没有具体实现类型的实例,则调用MyFactoryFunction构造一个,否则我希望它返回缓存副本.

标准Unity容器无法构造这些对象(更新:因为它们是.NET远程处理对象,因此本地计算机上的任何程序集中都不存在具体类),我不想在前面创建它们用RegisterInstance存储它们.

interface IFoo : IBase { ... }
interface IFoo2 : IBase { ... }

...
container.Resolve<IFoo2>();

...
IBase MyFactoryFunction(Type t)
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

我假设我可以创建一个Unity扩展来执行此操作,但我想知道是否已经有一个解决方案我可以借用.

c# ioc-container unity-container unity2.0

10
推荐指数
3
解决办法
6472
查看次数

标签 统计

c# ×2

ioc-container ×2

unity-container ×2

unity2.0 ×1