我一直在搜索互聯網上的任何示例或獲取開始文章如何使用XML擴展與Ninject綁定,但我無法找到任何幫助! ,Ninject和XML配置綁定
任何機構都可以提供一個非常小的樣本,我該怎麼做?
在此先感謝
我一直在搜索互聯網上的任何示例或獲取開始文章如何使用XML擴展與Ninject綁定,但我無法找到任何幫助! ,Ninject和XML配置綁定
任何機構都可以提供一個非常小的樣本,我該怎麼做?
在此先感謝
我找不到任何例子或者,而是老老實實的源代碼是非常小的 - 我只想下載(here),並通過測試案例閱讀。
單元測試項目有一些例子,像這樣:
<module name="basicTest">
<bind name="melee"
service="Ninject.Extensions.Xml.Fakes.IWeapon, Ninject.Extensions.Xml.Test"
to="Ninject.Extensions.Xml.Fakes.Sword, Ninject.Extensions.Xml.Test" />
<bind name="range"
service="Ninject.Extensions.Xml.Fakes.IWeapon, Ninject.Extensions.Xml.Test"
to="Ninject.Extensions.Xml.Fakes.Shuriken, Ninject.Extensions.Xml.Test" />
</module>
它似乎並不十分強大。由於someone else pointed out,NInject的重點是「從XML中解脫」。
他們唯一的文檔顯示了xml配置的外觀,但他們沒有舉例說明如何加載它,所以這裏是一個簡單的例子,它顯示了這兩個難題。
XML配置
這將是一個名爲NinjectModules.xml文件。爲了找到這個類型,我不得不爲它提供程序集限定名,即使所有東西都在一個.exe中。
<module name="SomeModule">
<bind
service="Birds.IOwl, Birds, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
to="Birds.SlowOwl, Birds, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
</module>
加載配置
IKernel kernel = new StandardKernel();
kernel.Load("c:\path\to\NinjectModules.xml");
IOwl owl = kernel.Get<IOwl>();
owl.Fly();
得到了解決:
不要忘記複製設置爲該文件的XML文件 Directory屬性的輸出是否有更新的複製,以便它可以自動複製到 輸出目錄。 更多的,請參閱本PDF
失去了我的星期六結束和審查Ninject.Extensions.Xml來源,我解決我的問題:
(...)
var settings = new NinjectSettings { LoadExtensions = false };
kernel = new StandardKernel(settings, new XmlExtensionModule());
kernel.Load(@"C:\DEV\FSENQUETE\invista.xml");
//kernel.GetModules().Count() --> Ok! Result 34 modules... :)
凡在web.config中使用,其下的父元素呢這進入? – Yasser 2012-10-05 13:00:34