繁体   English   中英

在 C# Rest Service 中返回简单节点

[英]Return simple node in C# Rest Service

抱歉,如果已经有人问过这个问题,但我在任何地方都找不到解决方案。 我有一个用 C# 开发的 Rest 服务。

现在,我有一个资源,合同看起来像这样

[OperationContract]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Xml, UriTemplate = "/tests)]
Test TestGet();

我正在从现有的迁移,所以我必须返回与当前存在的完全相同的 XML。 像这样的事情:

<?xml version="1.0"?>
<test>OK</test>

我想返回一个对象或字符串,但将结果保留为 XML 结果而不是原始结果。 我怎么能这样做? 如果我返回一个字符串,我会得到这个结果:

<?xml version="1.0"?>
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">KO</string>

如果我返回这个对象:

[DataContract]
public class Test
{
    [DataMember(Name = "Test")]
    public string Result { get; set; }
}

我得到这样的东西:

<?xml version="1.0"?>
<Test xmlns="http://mynamespace">
    <Test>OK</Test>
</Test>

我怎样才能以预期的格式返回我的答案? 我必须返回原始文本还是我可以做一些有 XML 作为响应的事情?

感谢那些愿意提供帮助的人。

我刚刚找到了怎么做。 如果有人有同样的问题,答案是:

[DataContract(IsWrapped = false)]
public class Test
{
    [DataMember(Name = "Test")]
    public string Result { get; set; }
}

IsWrapped 属性将阻止包装正文。 现在我知道这很明显,但我花了很多时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM