2009-09-24 36 views
1

我想用NHibernate獲得一個MVC站點爲依賴注入使用StructureMap設置。這是從我的StructureMap登記處的一行:StructureMap尋找一個實例System.Type

 ForRequestedType<NHibernate.ISession>().CacheBy(StructureMap.Attributes.InstanceScope.HttpContext) 
      .TheDefault.Is.ConstructedBy(
      context => context.GetInstance<IDatabaseScope>().OpenSession()); 
換句話說(或者是什麼我打算做的情況下),接口IDatabaseScope有一個方法的openSession將返回一個會話

用於該HttpRequest的。

我得到的是一個StructureMap異常代碼202,沒有默認實例爲PluginFamily System.Type定義。

現在我明白了「無默認實例」異常,並且我已經完成了其中的幾個。但是爲什麼它要尋找System.Type的默認實例? (即,它不失敗尋找ISession或IDatabaseScope的實例,或鏈中的任何其他東西,它試圖創建一個System.Type的實例)。爲什麼?

回答

3

您的IDatabaseScope的具體實現是否有任何構造函數依賴? 這種風格的問題可能更適合structuremap users mailing list,因爲它可能非常特定於您的實現。