2011-01-09 85 views
0

我有一組基礎信息庫是設置這樣的......Ninject配置 - 仿製藥

Bind<IRepository<SomeObject>>().To<SomeObjectRepository>().WithConstructorArgument("connection", connection); 
Bind<IRepository<SomeOtherObject>>().To<SomeOtherObjectRepository>().WithConstructorArgument("connection", connection); 
//and so on 

這些庫很簡單 - 全班去這樣。

public class SomeObjectRepository : Repository<SomeObject> 
{ 
    public SomeObjectRepository (string connection) : base(connection) 
    { 
    } 
} 

所以我想,嘿,這有點笨,所以我創建了一個通用的基礎知識庫,並用這個替換了所有那些綁定。

Bind(typeof(IRepository<>)).To(typeof(Repository<>)).WithConstructorArgument("connection", connection); 

當然也破了,腹背受敵一個錯誤

錯誤激活 IRepository {SomeObject}使用綁定從IRepository橫置 到資源庫橫置 沒有構造函數可用來創建 實例 類型。

爲什麼不能工作?

+0

你能否提供Repository <>實現?特別是構造函數。 – 2011-01-17 12:53:35

回答

0

有點晚了,但你需要將IRepository綁定到SomeObjectRepository。