Spring.net是一個非常強大的框架和工具,下面是百度百科對它的介紹。
Spring.NET為建立企業級應用提供了一套輕量級的解決方案。通過Spring.NET,我們可以用統一且透明的方式來配置應用程序。
Spring.NET的重點是為中間層提供聲明式事務管理,以及一個功能齊全的ASP.NET擴展框架。Spring.NET是非侵入式的,代碼對框架本身不會產生任何依賴。
我只要介紹它的解耦,通過注入的方法為對象和屬性賦值。
1.引入Spring.Core組件,通過NuGet包管理器引入,依賴項會同時被引入。

2.導入命名空間

3.配置
本項目是在控制台應用程序下做的實驗,配置文件為App.config.
3.1節點聲明的配置
<configSections>
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.ContextHandler,Spring.Core" />
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler,Spring.Core" />
</sectionGroup>
sectionGroup節點的配置,必須為configuration的第一個子節點,不然會出錯。
以上配置了一個section組spring,包含兩個成員的section。這部分必須一致,當然,name屬性是隨意取的,
但是為了方便,建議和上面的配置一樣。
3.2節點塊配置
這部分可以理解為是對section配置的詳細解析。
<spring>
<context>
<resource uri="config://spring/objects" />
</context>
<objects xmlns="http://www.springframework.net">
<!--這里的type表示的是name類型所在的命名空間和程序集
在代碼中是通過引用name來實現注入的-->
<object name="stu" type="LINQDemo.student,LINQDemo">
<property name="name" value="fsdf"></property>
<property name="id" value="1"></property>
</object>
</objects>
</spring>
其中context節點里配置了資源的位置,上述把資源配置在config配置文件中的objects節點中。
objects正好是對應的資源,object就是一個個的對象。
4.代碼調用
IApplicationContext ctx = ContextRegistry.GetContext();//獲取上下文實例
person stu = ctx.GetObject("person") as person;//通過GetObject方法調用配置的對象
Console.WriteLine(stu.id);
Console.ReadKey();
student類
class student
{
public int id { get; set; }
public string name { get; set; }
}
