Spring.NET 框架核心原則為非侵入性。兩大核心介面:
XmlObjectFactory。IObjectFactory 的擴展,增加資源載入、事件傳播、國際化等企業級功能。在 app.config 或 web.config 中註冊 Spring 區段與對象定義:
<configuration>
<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>
</configSections>
<spring>
<context>
<resource uri="config://spring/objects"/>
</context>
<objects>
<object name="Users" type="Spring.Demo.Compontext.UsersCompontents,Spring.Demo.Compontent"/>
</objects>
</spring>
</configuration>
namespace Spring.Demo.Model {
public class Users {
public int Oid { get; set; }
public string Name { get; set; }
public string Sex { get; set; }
public int Age { get; set; }
}
}
namespace Spring.Demo.Service {
public interface IUsers {
string GetUserInfo();
}
}
namespace Spring.Demo.Compontext {
public class UsersCompontents : IUsers {
public string GetUserInfo() {
Users user = new Users { Oid = 1, Name = "Beniao", Sex = "Boy", Age = 25 };
return string.Format("編號:{0}--->姓名:{1}--->性別:{2}--->年齡:{3}",
user.Oid, user.Name, user.Sex, user.Age);
}
}
}
透過 ConfigurationManager.GetSection 獲取上下文,再由容器解析對象:
IApplicationContext context = ConfigurationManager.GetSection("spring/context") as IApplicationContext;
IUsers user = context.GetObject("Users") as IUsers;
Console.WriteLine(user.GetUserInfo());


本文示範了 Spring.NET IOC 容器的基本配置與三層架構下的依賴注入實作。透過 XML 定義對象與依賴,客戶端無需直接實例化具體類別,實現了鬆耦合設計。