衆所周知,Spring在java中是很常見的框架,Spring.Net雖然體積比較大,可是功能相對齊全,本文介紹在VS2017 .Net FrameWork 4.6.1環境下,如何快速使用Spring.Net的IOC功能。話很少說,開擼Demo!java
1 準備工做git
1.1新建解決方案文件夾,新建BLL、IBLL類庫項目:github
1.2 在IBLL層中添加測試接口ITest.csweb
public interface ITest { string GetName(); int GetAge(); }
1.3 在BLL層中添加具體的實現類TestBll並繼承1.2中接口:spring
public class TestBll: ITest { public string GetName() { return "Test"; } public int GetAge() { return 12; } }
1.4 添加WebTest 項目,並添加相應的測試Controller:框架
2 引入Spring.Net所需Nuget包測試
2.1 在WebTest中添加Nuget包:spa
2.2 在Web.Config文件中配置Spring.Net節點:.net
<configuration> <configSections> <sectionGroup name="spring"> <section name="context" type="Spring.Context.Support.ContextHandler,Spring.Core" /> </sectionGroup> </configSections> <!--Spring.Net節點配置--> <spring> <!--容器配置--> <context> <resource uri="file://~/Config/controller.xml" /> <resource uri="file://~/Config/service.xml" /> </context> </spring>
2.3 在WebTest目錄下新建Config文件夾並新建controller.xml和service.xml文件,配置以下:code
2.3.1 controller.xml
<?xml version="1.0" encoding="utf-8" ?> <objects xmlns="http://www.springframework.net"> <description>An example that demonstrates simple IoC features.</description> <!--object的name能夠自定義,property中的屬性name不能自定義--> <object type="WebTest.Controllers.SpringDoNetTestController,WebTest" singleton="false"> <property name="itest" ref="TestService"></property> </object> </objects>
2.3.2 service.xml
<?xml version="1.0" encoding="utf-8" ?> <objects> <object name="TestService" type="BLL.TestBll,BLL"> </object> </objects>
這兩個文件在Web.Config文件中已經被添加,記得controller文件要放在上面。
2.4 讓Spring.Net接管MVCApplication:
在global文件中作以下調整:
3 測試
3.1 Controller文件中添加以下代碼,記得添加相應的Index視圖:
public class SpringDoNetTestController : Controller { public ITest itest { get; set; } // GET: SpringDoNetTest public ActionResult Index() { var name = itest.GetName(); return View(name); } }
3.2 打斷點測試
4 可能出現的狀況
4.1 未能加載文件或程序集「System.Web.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35」或它的某一個依賴項。系統找不到指定的文件。
解決方法:Nuget安裝或更新Microsoft.AspNet.WebApi,
安裝命令:Install-Package Microsoft.AspNet.WebApi
更新命令:Update-Package Microsoft.AspNet.WebApi
4.2 Could not load type from string value 'BLL.TestBll,BLL'.
解決方法:引用BLL以及IBLL
5 後記
本篇Demo在GitHub能夠下載,下載地址爲:https://github.com/WangBank/SpringDoNetForVS2017
這篇文章是關於Spring.Net中IOC功能的簡單實用,之後會逐漸更新其AOp功能以及其餘IOC框架,譬如Unity、AutoFac等等,但願你們能夠支持。