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; } }