<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 xmlns="http://www.springframework.net">
</objects>
</spring>
public interface 晚上吃啥

{
void 吃饭();
}
public class 吃辣椒炒肉煲仔饭 : 晚上吃啥

{
public void 吃饭()
{
Console.WriteLine("吃辣椒炒肉煲仔饭咯");
}
}
public class 吃水煮鱼 : 晚上吃啥

{
public void 吃饭()
{
Console.WriteLine("吃水煮鱼咯");
}
}

<objects xmlns="http://www.springframework.net">
<object id="晚餐" type="SpringDemo_1.吃水煮鱼,SpringDemo_1" />
</objects>
[STAThread]
static void Main(string[] args)
{
Spring.Context.IApplicationContext ctx =
Spring.Context.Support.ContextRegistry.GetContext();
晚上吃啥 temp = ctx["晚餐"] as 晚上吃啥;
temp.吃饭();
}
运行一下, 看到结果了吧 hoho~~
--------------------------------------------------------------------------
现在让我们回过过头来看看,具体每一步都做了什么
step 1:
<configSections></configSections> 配置节,定义了<spring>配置组
<context><resource uri="{0}" /></context>
Spring.NET里默认提供了三种资源描述方式:
1) <resource uri="config://spring/objects" />
表示在config配置文件的<spring><objects>配置节内部定义了<object />
2) <resource uri="~/yourAppContext.xml" />
表示在程序的根目录下的yourAppContext.xml文件里定义了<object />
3)<resource uri="assembly://assemblyName/namespace/yourAppContext.xml" />
表示yourAppContext.xml设为了嵌入式资源,并在其中定义了<object />
step 2:
自定义的行为规范
step 3:
行为规范的具体实现
step 4 :
通过Spring.NET的IoC容器来配置由哪个符合行为规范的对象来执行行为
step 5:
执行行为,具体由谁执行,调用者(main()方法)不知情。
-------------------------------------------------------------------------------
环境: .net 1.1 , Spring.NET 1.1 Preview 3
源码: 这里