Spring.Net
简介
- 从http://www.springframework.net/download.html 下载spring.NET,解压后得到源码和编译好的dll
- 新建项目
- 添加Common.Logging.dll、Spring.Core.dll引用
Spring.Net的IOC配置可以采用独立的xml,也可以使用应用程序的配置文件。
配置写入应用程序配置文件中
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!--一定要在紧跟着configuration下面添加-->
<configSections>
<!--跟下面Spring.Net节点配置是一一对应关系-->
<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>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<!--Spring.Net节点配置-->
<spring>
<context>
<!--容器配置-->
<resource uri="config://spring/objects"/>
</context>
<objects xmlns="http://www.springframework.net">
<!--这里放容器里面的所有节点-->
<description>An example that demonstrates simple IoC features.</description>
<!--name 必须要唯一的,type=类的全名称,所在的程序集-->
<object name="UserInfoDal" type="Spring.Net.EFUserInfoDal">
</object>
</objects>
</spring>
</configuration>
Program.cs
using Spring.Context;
using Spring.Context.Support;
using Spring.Net;
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//Spring.Net 创建实例的方式转为容器帮我们创建
//创建spring容器上下文
IApplicationContext ctx = ContextRegistry.GetContext();
//通过容器创建对象
IUserInfoDal efDal = ctx.GetObject("UserInfoDal") as IUserInfoDal;
efDal.Show();
Console.ReadKey();
}
}
}
IUserInfoDal.cs
namespace Spring.Net
{
public interface IUserInfoDal
{
void Show();
}
}
EFUserInfoDal
using System;
namespace Spring.Net
{
public class EFUserInfoDal: IUserInfoDal
{
public void Show()
{
Console.WriteLine("I'm EF Dal");
}
}
}