准备工作
现在手头还没有Spring.NET的朋友,先让我们来到
这里下载一份(出于功能考虑推荐使用1.1 Preview 3版的)
如同使用其他第三方工具一样,依据.NET版本引用好Spring.Core.dll程序集,然后在配置文件中加入这么一段
step 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
>
</
configSections
>
<
spring
>
<
context
>
<
resource
uri
="config://spring/objects"
/>
</
context
>
<
objects
xmlns
="http://www.springframework.net"
>
</
objects
>
</
spring
>
OK,第一步工作做好.
不知道,各位在外漂泊的单身汉是不是有跟我一样的苦恼: 快餐吃来吃去,晚上经常不知道吃啥好,得,我就拿这个做DEMO吧.
先定义一个接口咯
step2:
public
interface
晚上吃啥
{
void 吃饭();
}
口味比较重,一般比较喜欢[吃辣椒炒肉褒仔饭] 和 [吃水煮鱼]
step3:
public
class
吃辣椒炒肉煲仔饭 : 晚上吃啥
{
public void 吃饭()
{
Console.WriteLine("吃辣椒炒肉煲仔饭咯");
}
}
public
class
吃水煮鱼 : 晚上吃啥
{
public void 吃饭()
{
Console.WriteLine("吃水煮鱼咯");
}
}
写好了,我也决定了:水煮鱼
在config文件的<objects></objects>之间加上一句
step 4:
<
objects
xmlns
="http://www.springframework.net"
>
<
object
id
="晚餐"
type
="SpringDemo_1.吃水煮鱼,SpringDemo_1"
/>
</
objects
>
美食当前,具体怎么享用呢? 看这里
step 5:
[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()方法)不知情。