Unity:如何覆盖工厂函数的参数?

时间:2016-01-08 20:22:05

标签: c# dependency-injection inversion-of-control unity-container ioc-container

考虑这个例子:

public class MyDisposable : IDisposable
{
    public MyDisposable(int dummy)
    {
    }

    public void Dispose()
    {
    }
}

var container = new UnityContainer()
    .RegisterType<IDisposable, MyDisposable>();

// in real code this is dependency of type Func<IDisposable>
var factory = container.Resolve<Func<IDisposable>>(new ParameterOverride("dummy", 0));
var disposable = factory(); // this line throws exception

问题是自动工厂不使用参数覆盖。

此解决方案正常,但在我的情况下不是一个选项:

var disposable = container.Resolve<IDisposable>(new ParameterOverride("dummy", 0));

我需要通过工厂构建IDisposable实现,但该实现需要一些构造参数。如果不实施自己的工厂,是否有可能解决这个问题?

0 个答案:

没有答案