我正在尝试使用 Generic DataContract 类,这样我就不必为不同对象的集合实现多种类型。
经验:
我有一个 Profile 对象,其中包含一组对象。
所以我想要一个Profile<Foo>
,Profile<Foo1>
其中 profile 包含 Foo 或 Foo1 对象的集合。
我一直在阅读 WCF 不支持泛型类,实际上我得到的错误如下。
Type 'GL.RequestResponse.ProfileResponse
1[T]' 不能导出为模式类型,因为它是开放的泛型类型。如果其所有泛型参数类型都是实际类型,则只能导出泛型类型。`
现在 ProfileResponse 是我正在尝试使用的这个 Profile 对象。
现在在我的主机中,我正在执行以下操作。:
ServiceConfig(typeof(ProfileHandler<EducationResponse>).Assembly,
typeof(ProfileRequest).Assembly,
typeof(Container)).Initialize();
这是带有数据契约的处理程序的定义。
public class ProfileHandler<T> : RequestHandler<ProfileRequest,
ProfileResponse<T>>
Container 正在使用 Windsor Container 来注册对象。
注册工作正常,但是在我为 WCF 处理器实例化服务主机并调用主机的打开方法后,我得到了上述错误。
我真的没有办法用 agatha 为 wcf 编写通用响应请求吗?必须为该集合中包含的每种类型定义一个 Profile 容器类,这感觉像是一种浪费。
谢谢。