【发布时间】:2016-02-05 00:52:24
【问题描述】:
我们已经创建并部署了一个 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 最终为空。
【问题讨论】:
标签: c# wcf namespaces