设想:
我有几项服务希望被不同的客户发现。执行发现工作正常。但是现在由于不同的原因,我拥有这些服务的不同版本。
我的应用程序生命周期中可能有 3 到 4 个不同的层:生产、登台、测试和开发。
我需要支持我在过去 6 个月内部署的客户端,因此我可能需要同时运行 2-3 个版本的服务。不是合同的不同版本,而是实现的版本略有不同。
我可能还需要按服务提供的数据类别来区分服务。假设我有一个提供美国数据的服务实例和另一个提供加拿大数据的实例,以及可能提供澳大利亚数据的第三个实例。在某些情况下,服务可能有多个类别。
因此,从客户的角度来看,如果我仅根据合同要求提供服务,我可能会获得 9 到 15 个端点,而我真的只想与美国生产版本 1.1 的一项服务交谈。我知道服务存在范围,但我未能成功创建一系列范围,以允许我在我的环境中需要的那种灵活性。
在前面的示例中,我正在寻找一个非常具体的服务,但我可能还想查看特定合同的所有服务,无论它们是什么国家或版本,仅适用于生产。我可能还需要在组合中添加额外的“范围”。总的来说,我可能有 4 - 6 个标准被用作“范围”。
问题:
范围是构建这种复杂过滤的正确方法还是我需要做一些自定义的事情?
如果范围是正确的方法,你能指出我可以看的样本吗?
如果我需要定制,是否有一种标准方法来扩展“范围”行为,以便我可以欺骗它做我想做的事情?
源代码: