1

我最近参与了开发 WCF 服务,它充当一种多播中继(即接受一些传入数据,进行一些处理,然后将其发送到多个其他外部服务)。该服务(我将其称为“我的服务”)由第二个内部服务提供数据。

此数据将从我的服务中作为 XML 保存在字符串中进行中继。因此我的服务可以简单地接受一个字符串作为方法请求的参数——但这并不理想,因为我们失去了类型安全性。

第二个服务有一个类,它封装了我的服务需要处理的所有信息,并最终中继到外部服务。

第二个服务在它的数据契约中公开了这个类。理想情况下,为了保持类型安全,并且不需要对第二个服务的实现进行大量更改,我应该接受这种类型的类作为我的服务操作的参数。

我在数据合同中说我需要这种类型的类而不复制代码的最佳方式是什么?我可以向第二个类添加服务引用,然后使用在我的数据合同中创建的代理类吗?

我只是无法解决这个问题,即使这似乎是一个微不足道的问题!

为任何帮助欢呼!

4

1 回答 1

2

如果您试图避免类的重复,请将您的类声明放在它自己的程序集中,并在 WCF 服务的所有各方之间共享该 dll。创建服务引用时,您可以选择共享哪些程序集(假设您使用 VS GUI 服务实用程序)。

使用代理类也可能是一个很好的途径。如果您将主要数据类公开为数据合约,然后创建它的代理,该代理将具有可被其他服务使用的公开类的版本。

于 2008-12-04T16:32:18.597 回答