WCF Http路由表(用于版本控制)



我的路由表目前有这样的东西。有没有更好的方法来处理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);

您可以这样做,但它是非常受协议约束的,在这种情况下是HTTP。我想知道是否有一种方法可以做到这一点,而不必太担心协议?理想情况下,我们只想做一次,而不是每次运输。幸运的是有办法,让我解释一下。

最终,WCF内部应该是协议无关的。我的意思是,当一个方法在您的服务上被调用时,我们不应该关心它是通过REST、TCP、HTTP还是命名管道

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

interface ISomething1 { ... }

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

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

那么,在配置中发布带有两个端点的服务就很简单了,一个指向ISomething1,另一个指向ISemething2。

最新更新