我们已经创建并部署了一个由各种第三方使用的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
这似乎导致调用的结果(没有错误)不反序列化,因此List最终为空。
答案 0 :(得分:1)
只要在服务内部进行所有重构,就不会出现任何问题,前提是:
[DataContract]
类此致