标签:
//这里是客户端的代码 当调用CreatePersonDao这个抽象方法或者虚方法的时候由配置文件返回指定的实例
为查询的方法注入某个实例 start
static void Main(string[] args)
{
IApplicationContext ctx = ContextRegistry.GetContext();
Console.WriteLine("查询方法");
ObjectFactory factory = (ObjectFactory)ctx.GetObject("objectFactory");
factory.CreatePersonDao().Save();
Console.WriteLine();
}
//下面是配置文件
<!--查询方法-->
<object id="personDao" type="SpringNet_MethodDi.PersonDao, SpringNet_MethodDi" singleton="false"/>
<object id="objectFactory" type="SpringNet_MethodDi.ObjectFactory, SpringNet_MethodDi">
<lookup-method name="CreatePersonDao" object="personDao"/>//执行CreatePersonDao方法时返回Persondao实例
</object>
//注意,可以直接在配置中定义这个类的对象
public abstract class ObjectFactory
{
//或者可以是一个虚方法
public abstract PersonDao CreatePersonDao();
}
public class PersonDao
{
public void Save()
{
Console.WriteLine("保存数据");
}
}
为查询的方法注入某个实例 end
标签:
原文地址:http://www.cnblogs.com/kexb/p/4574029.html