【问题标题】:WCF Http RouteTables (for versioning)WCF Http RouteTables(用于版本控制)
【发布时间】:2011-06-11 00:26:48
【问题描述】:

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

【问题讨论】:

    标签: c# wcf api versioning routetable


    【解决方案1】:

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

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

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

    interface ISomething1 { ... }
    

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

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

    然后在配置中使用 2 个端点发布您的服务很简单,一个指向 ISomething1,另一个指向 ISomething2

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-27
      • 1970-01-01
      相关资源
      最近更新 更多