|
什么是IoC
IoC是英文Inversion of Control的缩写。我们一般叫它“控制反转”。IoC技术是用来解决面向对象设计一大原则依赖倒置而出现的技术。可以更好的实现面向接口编程,来使各个组件之间解耦。
IoC的实现原理
.NET IoC容器的一般就是两种,一是反射,二是使用Emit来直接写IL。
废话不多了,想要了解跟多的IoC的知识请Google。
1.定义IIoCConfig接口
public interface IIoCConfig
{
void AddConfig();
Dictionary ConfigDictionary { get; }
}
2.定义IoCConfig实现
public class IoCConfig:IIoCConfig
{
///
/// 存放配置的字典对象,KEY是接口类型,VALUE是实现接口的类型
///
private Dictionary _configDictionary=new Dictionary();
///
/// 添加配置
///
/// 接口
/// 实现接口的类型
public void AddConfig()
{
//判断TType是否实现TInterface
if (typeof(TInterface).IsAssignableFrom(typeof(TType)))
{
_configDictionary.Add(typeof(TInterface), typeof(TType));
}
else
{
throw new Exception("类型未实现接口");
}
}
public Dictionary ConfigDictionary
{
get
{
return _configDictionary;
}
}
}
使用一个字典来保存Interface跟Class的对应关系。这里是仿造Ninject的配置方式,使用代码来配置。这种配置方式有个好处就是不会写错,因为有IDE来给你检查拼写错误。不要小看这个好处,当你有上百个注入对象的时候,使用Unity的XML来配置对应关系的时候很容易就会发生拼写错误。这种错误往往还很难发现。
当然这里要实现一个按照XML配置文件来设置对应关系的类也很容易,这里就不实现了。
|
|