2017-09-15 66 views
0

希望有人可能会指出我正确的方向。 我一直在重构我写的WPF应用程序(相当复杂 - 对我来说),来评估MEF上的Prism和Unity。MEF方法等同于棱镜Unity

我遇到了使用Unity的ServiceFactory模式的问题 - 我不知道如何克服。作为所有这些技术的初学者肯定没有任何帮助。

Unity有没有和下面的代码一样的结果?

[Export(typeof(IServiceFactory))] 
[PartCreationPolicy(CreationPolicy.NonShared)] 
public class ServiceFactory : IServiceFactory 
{ 
    T IServiceFactory.CreateClient<T>() 
    { 
     return ObjectBase.Container.GetExportedValue<T>(); 
    } 
} 

亲切的问候和感谢提前。 斯蒂芬

+0

不知道什么是预期的结果实际上_is_,但你在找'Container.Resolve'? – Haukinger

回答

1

试试这个(假设ObjectBase.Container属性返回IUnityContainer):

using Microsoft.Practices.Unity; 
... 
public class ServiceFactory : IServiceFactory 
{ 
    T IServiceFactory.CreateClient<T>() 
    { 
     return ObjectBase.Container.Resolve<T>(); 
    } 
}