我讀的地方,NHibernate的2.1支持的構造函數依賴注入它的entites。構造函數依賴注入與NHibernate 2.1和StructureMap
我該如何去配置StructureMap和NHibnerate 2.1來啓動並運行?
我讀的地方,NHibernate的2.1支持的構造函數依賴注入它的entites。構造函數依賴注入與NHibernate 2.1和StructureMap
我該如何去配置StructureMap和NHibnerate 2.1來啓動並運行?
通過在所有實體(類等)中設置StructureMap,然後使用每個接口作爲類的構造函數的簽名...當您在其構造函數中實例化具有依賴項的類時StructureMap將自動爲您注入!
[PluginFamily("Default")]
public interface IWidget1
[Pluggable("Default")]
public class Widget1 : IWidget1
[PluginFamily("Default")]
public interface IAnotherWidget
[Pluggable("Default")]
public class AnotherWidget : IAnotherWidget
{
public AnotherWidget(IWidget widget)
{
...
}
}
IAnotherWidget _anotherWidget = ObjectFactory.GetInstance<IAnotherWidget>();
就是這樣的東西!
這可能是使用過:Can I replace the call to Activator.CreateInstance() in NHibernate?
我意識到這是一個老問題,但在情況下,它可能是有用的。
編輯:原帖鏈接不是有效的NHib 2.1,找到了更好的信息。
對於NHibernate 2.1,您可以創建一個攔截器並重寫實例化方法,讓您的容器在那裏創建您的實例。 Here is an example
如果您想改爲執行屬性注入,您可以使用相同的技術,但是可以使用onLoad方法代替。
用這個得到任何地方?我也想用sm來注入依賴到我的實體中。 – 2010-02-26 07:24:11