首页 新闻 赞助 找找看

异想天开的想法,程序集重定向

0
悬赏园豆:100 [已关闭问题]

有一个异想天开的想法,不置可否实现。

A.dll:已经存在,包含了一些类,不希望被直接引用

B.dll:还不存在,可以被直接引用,但没有任何实质性内容,但希望能作为A.dll的一个Proxy

C.exe:引用B.dll,并使用其中的类,但实际上B.dll并不包含这些类,B.dll会把A.dll中的相关类返回

不知道c#能不能实现这样的想法,使得C.exe在引用了B.dll之后,就相当于引用了A.dll,可以自由地使用A.dll公开的所有资源。

问题补充: 谢谢winzheng,希望A和B互相都不知道,B会根据注册表或者一个配置好的路径来加载A.dll,并把对自己的所有请求都转给A.dll。
Windie Chai的主页 Windie Chai | 小虾三级 | 园豆:580
提问于:2009-07-24 09:10
< >
分享
其他回答(4)
0

B中定义A的接口,对A的实现静态注入即可实现。

有一点和你的不同,A必须引用B。

如果A,B互不知道,那就只能反射加载了。

winzheng | 园豆:8797 (大侠五级) | 2009-07-24 09:33
0

AB互不知道,C怎么知道该调用什么类什么方法呢?B必须充当一个接口的角色(当然,接口定义到C里也可以,但不合逻辑),而A肯定得遵循这个接口,没有章法随便介入是不太可能的,这个要求应该就类似于插件的机制吧。

斯克迪亚 | 园豆:4124 (老鸟四级) | 2009-07-24 12:08
0

反射加载

风影极光 | 园豆:1573 (小虾三级) | 2009-07-24 14:09
0

应该可以实现的,.net 的 Web service 就是类似方法实现的。你仿照Web service 的方法来实现就可以了。

eaglet | 园豆:17139 (专家六级) | 2009-07-24 16:39
0

架构问题,b是个适配器,从a类抽象出接口吧,用工厂方法加载a类,反射加载。这样就可以用b类了,而且和a类松耦合

OOLi | 园豆:163 (初学一级) | 2009-07-24 18:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册