使用Microsoft Unity,如何在使用InjectionFactory时引用ParameterOverride

时间:2015-03-25 21:56:52

标签: c# unity-container

我有一个核心库,可以通过工厂访问一堆服务。它看起来像这样:

MyServiceFactory.Create<T>(serviceKey);

在其他库中,我正在尝试引用此工厂,并传入ServiceKey。我正在努力如何将ServiceKey设置为ParameterOverride并让它在InjectionFactory中被识别。在执行标准RegisterType()时,ParameterOverride会神奇地注入图中具有该参数的每个类。

Unity设置

        container.RegisterType<IOrderService>(new InjectionFactory(f=>{

return MyServiceFactory.Create<IOrderService>(REFERENCE_TO_PARAMETEROVERRIDE_FOR_SERVICEKEY);
                    }));

Unity Resolve

public static T Resolve<T>()
        {

            var parameterOverride = new ParameterOverride("serviceKey", new TestingServiceKey());

            return Resolve<T>(parameterOverride);
        }

0 个答案:

没有答案