接以前的文章,VS2017中使用Spring.NET配置以及使用方法(framework4.6.1超詳細)

    衆所周知,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等等,但願你們能夠支持。

相關文章
相關標籤/搜索