2012-04-12 67 views
0

我写了一个方法来获取details.in休息客户端得到这样的回应。如何避免wcf xml响应中的html代码?

<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避免<

回答

3

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

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

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]属性。

+0

+1这是强类型方法的有效解决方案。 – 2012-04-12 10:42:39