如何解决字符串中的反斜杠字符导致字符串在WCF中被评估为“无”
|| 我有一个用VB.NET编写的WCF应用程序,该应用程序将通用“ 0”作为参数之一。 当我传入一个带有反斜杠“ 1”作为值中字符之一的键/值对时,客户端会自动将整个值更改为“ 2”,或者在XML中它显示如下:<Value i:nil=\"true />
将字符串中的反斜杠传递给WCF服务时,是否有一些特殊方法可以转义反斜杠?据我所知,反斜杠不是XML中的保留字符。
解决方法
您如何致电服务?我刚刚尝试了这种情况(请参见下面的代码),服务器将正确打印这些值。
Public Class StackOverflow_6116861_751090
<ServiceContract()> _
Public Interface ITest
<OperationContract()> Sub Process(ByVal dict As Dictionary(Of String,String))
End Interface
Public Class Service
Implements ITest
Public Sub Process(ByVal dict As System.Collections.Generic.Dictionary(Of String,String)) Implements ITest.Process
For Each key In dict.Keys
Console.WriteLine(\"{0}: {1}\",key,dict(key))
Next
End Sub
End Class
Public Shared Sub Test()
Dim baseAddress As String = \"http://\" + Environment.MachineName + \":8000/Service\"
Dim host As ServiceHost = New ServiceHost(GetType(Service),New Uri(baseAddress))
host.AddServiceEndpoint(GetType(ITest),New BasicHttpBinding(),\"\")
host.Open()
Console.WriteLine(\"Host opened\")
Dim factory As ChannelFactory(Of ITest) = New ChannelFactory(Of ITest)(New BasicHttpBinding(),New EndpointAddress(baseAddress))
Dim proxy As ITest = factory.CreateChannel()
Dim dict As Dictionary(Of String,String) = New Dictionary(Of String,String)
dict.Add(\"o\\ne\",\"uno\")
dict.Add(\"two\",\"do\\s\")
dict.Add(\"th\\ree\",\"tr\\es\")
proxy.Process(dict)
End Sub
End Class
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。