【发布时间】:2009-01-06 00:01:23
【问题描述】:
我正在 Web 服务中使用 ASP.NET 2.0 中的一些 Xml 序列化。问题是我有一个这样定义的元素:
<System.Xml.Serialization.XmlElementAttribute(Form:=System.Xml.Schema.XmlSchemaForm.Unqualified, IsNullable:=True)> _
Public Property COMMENTFIELD() As String
Get
Return CommentField ' This is a string
End Get
Set(ByVal value as String)
CommentField = value
End Set
End Property
在代码的其他地方,我正在构建注释并附加 作为每个“评论”之间的换行符(根据我们提交的网络服务的规则),如下所示:(请记住 是表示字符 10 的有效 XML 实体(我相信换行)。
XmlObject.COMMENTFIELD = sComment1 & "
" & sComment2
问题是 .NET 试图帮我们一个忙,并在注释字符串中编码 & 最终发送目标 Web 服务:&amp;#xA;,这显然不是我们想要的。
这是目前发生的情况:
XmlObject.COMMENTFIELD = sComment1 & "
" & sComment2
输出:
<COMMENTFIELD>comment1 &#xA comment2</COMMENTFIELD>
我需要的输出:
<COMMENTFIELD>comment1 
 comment2</COMMENTFIELD>
问题是:如何强制 .NET 运行时不要尝试对我已经知道符合 XML 并已转义的数据进行编码(顺便说一句 sComment1 和 sComment2已经被逃脱了)。我习惯于处理我的 XML,而不是依赖于某种神奇的东西来逃避我背后的所有数据!
我需要能够将有效的 XML 传递给 COMMENTFIELD 属性,而无需对我提供的数据进行 .NET 编码(因为它已经是 XML)。我需要知道如何告诉 .NET 它接收的数据是 XML 字符串,而不是需要转义的普通字符串。
【问题讨论】:
-
你是说远程 Web 服务区分 和嵌入的换行符?如果是这样,我认为它没有正确处理 XML。
标签: asp.net xml web-services serialization