第一个问题是:你的两个类是解耦的,还是有引用关系。
如果是解耦,使用非泛型方法container.RegisterType(type,type), type 使用字符串自己Type.GetType(typestring)
如果不是解耦的,有引用关系,使用泛型注册container.RegisterType<T1,T2>
动态加载b,遍历b中的类.
或像某些插件一样,把b(或实现了a)的dll丢到某个指定的位置,a中动态加载这些dll进行操作.
1、你可以看一下我的企业库系列中的相关部分
2、其实就是首先注册,配置注册是一种,用代码注册是一种
3、var container=new UnityContainer();
4、container.Register();
5、container.Resolve()
用反射实现
Assembly assm =Assembly.LoadFrom(...)
Type objType = assm.GetType(...)
IInterface objInstance =(IInterface) Activator.CreateInstance(...)
objInstance.DoSomething(...)
Container.RegisterType<a接口,b实现>