0

我必须用 WCF 服务包装旧的 .net 程序集 API(类和接口集)。服务被设想为代理,它将调用委托给现有的类,几乎不需要额外的工作。

所以我添加[ServiceContract] interface了公开处理现有结构和类的方法。但是 wcf-proxy-generator (svcutil) 删除了一些字段(声明为只读)并且对于别名不够聪明(例如: public bool Boolean1 { get { return Booleans[0] }}变成bool Boolean1 { get; set; })。

我决定复制这些遗留类以消除混乱。现在有一些现有类的合同安全版本,WCF 服务具有额外的代码,可以将合同安全类转换为旧类,反之亦然。

您会建议复制所有遗留类还是只为有问题的类进行转换?可能我错过了一些额外的代理生成器参数。

先感谢您!

4

1 回答 1

1

代理不喜欢您的只读属性,因为它需要序列化对象,并且无法调用 setter 并将序列化值放回对象中。

将遗留类修改为对 WCF 友好会更容易,但通常这不是一个选项。您创建的用于从遗留类转换为 WCF 安全类的类看起来不错,但显然不理想,因为您引入另一个层只是为了将这些类与 WCF 一起使用。

于 2010-07-15T16:00:58.933 回答