首页 新闻 搜索 专区 学院

unity如何动态加载dll

0
悬赏园豆:50 [已解决问题] 解决于 2010-06-24 11:27

封装2个dll , a.dll,b.dll ,a中是接口,b中的类是对a接口的实现 , a中要动态引用 b.dll 的实现,如何不通过配置用程序完成。

问题补充: 狼Robot 我需要用 UNITY 2.0 实现 virus: 现在的问题是如何注册其他 assembly中的类 container.Register();?
风萧瑟的主页 风萧瑟 | 初学一级 | 园豆:150
提问于:2010-06-23 17:36
< >
分享
最佳答案
0

第一个问题是:你的两个类是解耦的,还是有引用关系。

如果是解耦,使用非泛型方法container.RegisterType(type,type), type 使用字符串自己Type.GetType(typestring)

 

如果不是解耦的,有引用关系,使用泛型注册container.RegisterType<T1,T2>

收获园豆:50
浪子 | 菜鸟二级 |园豆:295 | 2010-06-24 08:59
其他回答(4)
0

动态加载b,遍历b中的类.

或像某些插件一样,把b(或实现了a)的dll丢到某个指定的位置,a中动态加载这些dll进行操作.

I,Robot | 园豆:9583 (大侠五级) | 2010-06-23 18:00
0

1、你可以看一下我的企业库系列中的相关部分

2、其实就是首先注册,配置注册是一种,用代码注册是一种

3、var container=new UnityContainer();

4、container.Register();

5、container.Resolve()

 

Virus-BeautyCode | 园豆:1619 (小虾三级) | 2010-06-24 00:38
0

用反射实现

Assembly assm =Assembly.LoadFrom(...)
Type objType = assm.GetType(...)
IInterface objInstance =(IInterface) Activator.CreateInstance(...)
objInstance.DoSomething(...)

eaglet | 园豆:17119 (专家六级) | 2010-06-24 07:43
0

Container.RegisterType<a接口,b实现>

WildWeeds | 园豆:285 (菜鸟二级) | 2010-06-24 10:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册