gpt4 book ai didi

.net - 替代服务引用

转载 作者:行者123 更新时间:2023-12-01 05:40:34 25 4
gpt4 key购买 nike

我试图通过解决一些痛点来帮助一个项目团队简化他们的工作。

他们在代码中的痛点之一是,他们通过服务引用(代理)使用 WCF 服务 [即Visua Studio 2008 中的“添加服务引用”。这会产生很多问题,包括部署开销、Souce Control 获取更新代理的最新相关问题等。

为了处理这些和其他与服务引用相关的问题,我正在寻找一个很好的替代服务引用的方法。我已经看过 ChannelFactory我最倾向于那个。这似乎是一个很好的解决方案。

然而问题是,有很多代码像这样使用这些服务

BatchClient client = new BatchClient(); //Batchclient is  a proxy
batchData = client.GetBatchData(batchNumber)

因此,如果我使用 ChannelFactory 路径,我将需要在整个项目中更新上述所有代码段。由于更改量很大,团队对此选项不太满意。

我的问题是,除了“添加服务引用”之外,还有其他更好的替代方案吗,只需更改最少的代码即可使用?或者有什么方法可以在不影响现有代码片段的情况下使用 ChannelFactory?

最佳答案

首先,我相信您可以通过创建自己的代理来轻松解决“必须替换大量代码”的问题 BatchClient这将实例化 channel 。它的工作方式与当前使用的生成代码的工作方式基本相同。

然而 在转向无代理、契约(Contract)共享模式之前,我真的会考虑你为什么要搬家。我不再使用生成的代码选项,主要是因为熟悉 WCF 没有必要。但是我相信“添加服务引用...”模式对于 WCF 初学者来说更容易,而且它根本不需要花费您。

问自己以下问题(或者更确切地说,向我解释):

  • 部署开销是多少?我没有看到。您生成的代理将在部署后工作。您在配置文件中更改服务地址和行为。
  • 源代码控制问题/获取最新信息?这也不应该是一个问题。只需获取最新的,并使用最新的。如果服务已更改 - 并且您想利用这些更改 - 如果您使用共享契约(Contract)文件并实例化您自己的 channel ,您将需要获取最新版本的服务契约(Contract)。
  • 更新代理?不熟悉代理的工作原理、它是什么以及它的作用可能会导致这种情况,但同样,没有代理也不容易。真的,您只需右键单击选择“更新服务引用”,对吗?

  • 您正在考虑的模型更简洁,并且可能具有更大的灵活性,但并不简单。如果您的团队在维护生成的服务代理时遇到问题,则 我会解决这些问题 而不是通过删除代理将它们扔到 WCF 的深处。

    关于.net - 替代服务引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5787727/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com