2012-12-15 52 views
0

使用Unity界面,我想下面的接口註冊到一個模型:團結 - 註冊即接受類型<T>

public interface IGenericRepository<T> : IDisposable where T : class 

這是團結的引導程序中註冊這個正確的方法是什麼?

  container.RegisterType<IGenericRepository<TypeBasedOverride>, GenericRepository<TypeBasedOverride>>(new HierarchicalLifetimeManager()); 
+1

問題背後是什麼?沒有額外的條件,答案可能只是「是」。 –

回答

1

我想你想如果是這樣,你需要爲註冊泛型類型開放式泛型類型(無類型參數)以註冊任何具體T. 該接口。檢查這msdn entry

在您的例子:

container.RegisterType(typeof(IGenericRepository<>), typeof(GenericRepository<>), new HierarchicalLifetimeManager()); 

當你請求的IGenericRepository<SomeClass>實例通過這種方式,統一將爲您提供的GenericRepository<SomeClass>一個實例,不管具體類型SomeClass的的。