【发布时间】:2010-12-04 03:32:59
【问题描述】:
我正在开发一个简单的插件框架。 WCF 客户端需要创建一个“ISubject”实例,然后发送回服务端。 'ISubject' 可以由用户扩展。客户端在运行时唯一知道的是“ISubject”子类的 ID。
首先,客户端需要获取“ISubject”的特定子类的类型信息。其次,客户端使用反射枚举所有成员以创建自定义属性编辑器,以便可以为每个成员分配适当的值。最后,客户端创建该子类的实例并发送回服务。
问题是客户端如何通过WCF通信获取类型信息?
我不希望客户端加载存在子类('ISubject')的程序集。
谢谢
【问题讨论】:
-
这听起来不太乐观。你真正想解决什么问题?
-
不,你不能这样做 - WCF 是关于 序列化 (XML) 消息 - 你不能通过网络发送未知对象类型并重新组装它们客户端不知道它们... WCF 不是“对象远程处理”类型的系统(如 DCOM 或 CORBA)- 设计
-
Spender,我定义了一个接口ISubject,它可以被插件框架用户扩展。框架(在服务器端运行)可以在运行时从第三方程序集加载 ISubject 的子类。客户端需要创建一个扩展子类的实例并发送回服务器端。我使用 WCF 进行服务器和客户端之间的通信。所以,问题是客户端如何获取类型信息来创建子类的实例(我使用反射,所以需要类型信息)。注意:我不想客户端加载第三方程序集。