簡體   English   中英

在不影響客戶端的情況下更改WCF項目的名稱空間

[英]Change namespace of WCF project without affecting clients

我們已經創建並部署了WCF服務,該服務已被各種第三方使用。

但是,我們現在要更改該特定項目中類的名稱空間。 無論如何,是否需要這樣做而無需第三方做出任何改變?

例:

namespace Test.Service 
{
    [ServiceContract]
    public interface MyService 
    { 
         [OperationContract]
         List<People> GetPeople();
    }

    public class MyService : IMyService 
    {
         public List<People> GetPeople() 
         {
            // Logic here
         }
    }
}

namespace Test.Service.DTO 
{
    [DataContract]
    public class Person { }
}

namespace Something.Different
{
    [ServiceContract]
    public interface MyService 
    { 
         [OperationContract]
         List<People> GetPeople();
    }

    public class MyService : IMyService 
    {
         public List<People> GetPeople() 
         {
            // Logic here
         }
    }
}

namespace Something.Different.DTO 
{
    [DataContract]
    public class Person { }
}

實際上,這似乎主要是與WDSL中生成的DTO的名稱空間有關的問題。

他們正在改變

http://schemas.datacontract.org/2004/07/Something.Different.DTO 

http://schemas.datacontract.org/2004/07/Test.Service.DTO 

這似乎導致調用的結果(不會出錯)未反序列化,因此列表最終為空。

只要在服務內部進行所有重構,就不會有任何問題,只要:

  • 您僅與第三方共享WSDL
  • 換句話說:您沒有為第三方提供包含接口和[DataContract]類的共享庫

問候

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM