1

我的路由表目前有类似的东西。有没有更好的方法来处理版本控制WCF Web API或传统WCF

RouteTable.Routes.MapServiceRoute<Service1>("1.0/Route1", Config1);
RouteTable.Routes.MapServiceRoute<Service2>("1.0/Route2", Config2);
RouteTable.Routes.MapServiceRoute<Service3>("1.0/Route3", Config3);
RouteTable.Routes.MapServiceRoute<Service4>("1.0/Route4", Config4);
4

1 回答 1

0

你可以这样做,但它是非常受协议约束的,在这种情况下是HTTP。我想知道是否有办法做到这一点而不必担心协议?理想情况下,我们只想做一次,而不是为每个交通工具做一次。幸好有办法,让我解释一下。

归根结底,您的 WCF 内部应该与协议无关。我的意思是在你的服务上调用一个方法时,我们不应该关心它是来自REST、TCP、HTTP 还是命名管道

在 WCF 中,这很容易,版本控制也是如此。通过版本控制,我们可以了解很多关于 .NET 接口版本控制的知识,尤其是当它与 WCF 无关时。这个想法是您的服务应该实现:

interface ISomething1 { ... }

稍后当需要新方法或更改时,您应该:

interface ISomething2 : ISomething1 { void SomethingNew (...) }

然后,在配置中发布具有 2 个端点的服务是一件简单的事情,一个指向ISomething1,另一个指向ISomething2

于 2011-06-18T23:50:50.513 回答