博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义简单IOC类
阅读量:5811 次
发布时间:2019-06-18

本文共 1496 字,大约阅读时间需要 4 分钟。

支持.net4.0版本

public class MyXmlFactory    {        private IDictionary
objectDefine = new Dictionary
(); public MyXmlFactory(string fileName) { InstanceObjects(fileName); // 实例IoC容器 } ///
/// 实例IoC容器 /// ///
private void InstanceObjects(string fileName) { XElement root = XElement.Load(fileName); var objects = from obj in root.Elements("object") select obj; objectDefine = objects.ToDictionary( k => k.Attribute("id").Value, v => { string typeName = v.Attribute("type").Value; Type type = Type.GetType(typeName); return Activator.CreateInstance(type); } ); } ///
/// 获取对象 /// ///
///
public object GetObject(string id) { object result = null; if (objectDefine.ContainsKey(id)) { result = objectDefine[id]; } return result; } }

xmL文件(Objects.xml):

<objects>

<object id="PersonDao" type="MyselfIoC.PersonDao, MyselfIoC" />

</objects>

 调用:

MyXmlFactory ctx = new MyXmlFactory(@"Objects.xml"); Console.WriteLine(ctx.GetObject("PersonDao").ToString());

  

 

  

 

转载于:https://www.cnblogs.com/xmyy/articles/3823465.html

你可能感兴趣的文章
html语言
查看>>
从源码看集合ArrayList
查看>>
spring-boot支持websocket
查看>>
菜鸟笔记(一) - Java常见的乱码问题
查看>>
我理想中的前端工作流
查看>>
记一次Git异常操作:将多个repository合并到同一repository的同一分支
查看>>
CodeIgniter 3.0 新手捣鼓源码(一) base_url()
查看>>
Chrome 广告屏蔽功能不影响浏览器性能
查看>>
vSphere 6将于2月2日全球同步发表
查看>>
Android状态栏实现沉浸式模式
查看>>
让你的APP实现即时聊天功能
查看>>
iOS 绝对路径和相对路径
查看>>
使用Openfiler搭建ISCSI网络存储
查看>>
应用新安全组 - 每天5分钟玩转 OpenStack(116)
查看>>
iOS - UIViewController
查看>>
IntPtr 转 string
查看>>
学生名单
查看>>
(转) 多模态机器翻译
查看>>
【官方文档】Nginx负载均衡学习笔记(三) TCP和UDP负载平衡官方参考文档
查看>>
矩阵常用归一化
查看>>