2011-01-23 48 views
0

這裏就是我想要的引導程序做:WPF棱鏡:動態地從一個程序集加載一個類型,與團結容器中註冊

protected override void ConfigureContainer() 
    { 
      Assembly someAssembly = Assembly.LoadFile(@".\SomeServiceImplementationLib.dll"); 

      Type someServiceImplementationType = someAssembly .GetType(@"SomeServiceImplementation"); 

      Container.RegisterType<ISomeServiceType, someServiceImplementationType >(new ContainerControlledLifetimeManager()); 


     base.ConfigureContainer(); 
    } 

這並不編譯說「類型或命名空間名稱期望」爲someServiceImplementationType。但它確實是一種類型不是嗎?

基本上我想加載特定組件,只有在啓動時在滿足某些條件,如果它的加載,我想從與團結容器裝組件註冊服務實現。有沒有辦法做到這一點?

回答

1

你是混亂的編譯型的泛型和運行時間打字。

泛型是編譯時的事情,除非你做的反射魔法與類型新了一個新的泛型實例一點點...但是,這是沒有必要的。

Unity容器具有其他易於使用的RegisterType擴展。

相反,只需調用非一般形式:

Container.RegisterType(typeof(ISomeServiceType), someServiceImplementationType, new ContainerControlledLifetimeManager()) 
+0

AAAH!萬分感謝! – NVM 2011-01-23 20:21:24

相關問題