字符串中的反斜杠字符导致字符串在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
    

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...