首页 新闻 会员 周边 捐助

spring.net中实例化对象的方法

0
悬赏园豆:10 [已解决问题] 解决于 2012-01-12 11:00

我发现IObjectFactory.GetObject和IApplicationContext.GetObject都能实例化对象,那有什么区别?

日暮乡关何处是的主页 日暮乡关何处是 | 初学一级 | 园豆:84
提问于:2011-12-24 16:09
< >
分享
最佳答案
0

在 Spring.NET IoC 中最核心的内容应该是 IObjectFactory、IApplicationContext、IObjectDefinition 这三个接口了。IObjectFactory 是核心容器接口,负责管理容器内的注入对象,而 IApplicationContext 则是 IObjectFactory 的继承,它扩展了一些功能。IObjectDefinition 是注入对象的定义接口,供 IObjectFactory / IApplicationContext 调用。

在使用上,通常建议直接使用IApplicationContext,而不是IObjectFactory,IObjectFactory比IApplicationContext而言主要适用仅使用容器功能的场合

收获园豆:10
LCM | 大侠五级 |园豆:6876 | 2011-12-24 16:23

教程上是
IApplicationContext ctx = new XmlApplicationContext(xmlFiles);
IObjectFactory factory = (IObjectFactory)ctx;
Console.WriteLine(factory.GetObject("PersonDao").ToString());
我改成
IApplicationContext ctx = new XmlApplicationContext(xmlFiles);
Console.WriteLine(ctx.GetObject("PersonDao").ToString());
两种代码都能得到实例化的PersonDao,所以我就迷惑了

日暮乡关何处是 | 园豆:84 (初学一级) | 2011-12-24 16:27
其他回答(1)
0

你看下是否 IApplicationContext  有个接口方法是:GetObject(string name)

youdesou | 园豆:173 (初学一级) | 2011-12-28 09:41

可以啊,你看我上面写的:

支持(0) 反对(0) 日暮乡关何处是 | 园豆:84 (初学一级) | 2011-12-28 09:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册