如何避免wcf xml响应中的html代码?

时间:2012-04-12 10:10:14

标签: wcf

我写了一个获取详细信息的方法。其余客户端得到这样的响应。

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">&lt;Meetings&gt;&#xD;
&lt;Meeting&gt;&#xD;
&lt;Id&gt;1&lt;/Id&gt;&#xD;
&lt;Name&gt;Meeting1&lt;/Name&gt;&#xD;
&lt;Place&gt;SR Nagar&lt;/Place&gt;&#xD;
&lt;Time&gt;12/4/12 12:30pm&lt;/Time&gt;&#xD;
&lt;/Meeting&gt;&#xD;
&lt;Meeting&gt;&#xD;
&lt;Id&gt;2&lt;/Id&gt;&#xD;
&lt;Name&gt;Meeting2&lt;/Name&gt;&#xD;
&lt;Place&gt;Begumpet&lt;/Place&gt;&#xD;
&lt;Time&gt;12/4/12 1:00pm&lt;/Time&gt;&#xD;
&lt;/Meeting&gt;&#xD;
&lt;/Meetings&gt;&#xD;
</string>

在渲染的HTML中变得合适。

<Meetings> <Meeting> <Id>1</Id> <Name>Meeting1</Name> <Place>SR Nagar</Place> <Time>12/4/12 12:30pm</Time> </Meeting> <Meeting> <Id>2</Id> <Name>Meeting2</Name> <Place>Begumpet</Place> <Time>12/4/12 1:00pm</Time> </Meeting> </Meetings>

如何在wcf中的代码中处理它以避免&lt;  

2 个答案:

答案 0 :(得分:3)

您的服务操作返回string,您正在将XML写入该字符串。它总是看起来像这样,浏览器只是正确地显示它,因为它隐藏了string标记并且忽略了内容。

要返回真实的XML,您不得使用string作为返回值。尝试使用例如XElement

答案 1 :(得分:1)

[OperationContract]方法中,不返回字符串,而是返回Meeting个对象的数组。 Meeting类应包含您要返回的属性:

[DataContract]
public class Meeting
{
    [DataMember]
    public int Id { get; set; }
    [DataMember]
    public string Name { get; set; }
    [DataMember]
    public string Place { get; set; }
    // etc...
}

如果您使用的是.NET 4.0及更高版本,则不需要[DataContract][DataMember]属性。