最近开始研究依赖注入。刚刚开始研究这个东西,遇到不少问题。首先,概念就理解的不是很清楚,更不要说代码实现点什么了。
Google之下找到一片好文:http://tech.it168.com/w/d/2007-07-10/200707100933943.shtml
看了下,对依赖注入理解清晰了不少。
不过,感觉作者为了简单,把所有的代码文件都放在了一个dll中。我觉得这样并不会
对读者理解依赖注入有帮助,所以重新整理了下,放在这里和大家分享。欢迎提出批评意见!
以下是代码清单:
接口层
1
namespace IoCTest.Interface
2
}
2
接口的实现部分
1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using System.Text;
5
using IoCTest.Interface;
6
7
namespace IoCTest.Implementation
8
}
2
3
4
5
6
7
8
依赖注入容器
类型字典接口
1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using System.Text;
5
6
namespace IoCTest.Container
7
}
2
3
4
5
6
7
类型字典接口的实现
1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using System.Text;
5
using IoCTest.Implementation;
6
using IoCTest.Interface;
7
8
namespace IoCTest.Container
9
}
2
3
4
5
6
7
8
9
类型示例创建相关类
1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using System.Text;
5
6
namespace IoCTest.Container
7
}
2
3
4
5
6
7
实例生成类
1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using System.Text;
5
6
namespace IoCTest.Container
7
2
3
4
5
6
7
调用模块
1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using System.Text;
5
using IoCTest.Interface;
6
7
namespace IoCTest.Client
8
}
2
3
4
5
6
7
8
Console调用部分
1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using System.Text;
5
using IoCTest.Container;
6
using IoCTest.Interface;
7
8
namespace IoCTest
9
}
2
3
4
5
6
7
8
9
NUnit测试用代码
1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using System.Text;
5
using IoCTest.Client;
6
using IoCTest.Container;
7
using IoCTest.Implementation;
8
using IoCTest.Interface;
9
using NUnit.Framework;
10
11
namespace UnitTest
12
}
2
3
4
5
6
7
8
9
10
11
12