c# - .Net Rest Web 服务响应具有默认的数据协定命名空间而不是预期的命名空间

标签 c# .net wcf xml-serialization datacontract

详细信息:

接口(interface)契约:

[OperationContract]
[WebGet(UriTemplate = "test")]
TestType TestOperation();

类型定义:

[System.Xml.Serialization.XmlRoot(ElementName = "Test", Namespace="http://test.net/", IsNullable=false)]
public partial class TestType {

实际结果:

<TestType xmlns=http://schemas.datacontract.org/2004/07/ …

预期结果:

<Test xmlns= http://test.net/ …

请指教。

最佳答案

该服务正在使用 DataContractSerializer 来序列化响应,因此需要数据协定命名空间。为了覆盖它,我建议将 XmlSerialzeFormat 属性应用于操作,如下所示...

[OperationContract]
[WebGet(UriTemplate = "test")]
[XmlSerializerFormat]
TestType TestOperation();

关于c# - .Net Rest Web 服务响应具有默认的数据协定命名空间而不是预期的命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18256550/

相关文章:

android - JSONObject 无法转换为 JSONArray

c# - 如何使用 SQL file streaming win32 API 和支持 WCF streaming

c# - 如何使用 Moq 从 IHttpClientFactory 模拟 HTTPClient 并结合 .NET Core 中的 Polly 策略

c# - UnityEngine.GameObject 与 Generic.List<UnityEngine.GameObject>

c# - OpenID 领域是否必须是网站的基本 URL?

.net - 7-Zip (7za.dll) .NET 包装器

wcf - .Net 4.0 上对 WCF 的未签名 SAML 2.0 支持

c# - 重载的方法组参数会混淆重载的解析?

c# - 将参数传递给c#中的sql存储过程

.net - 使用 .NET 测试 IP 地址是否在地址范围内