Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.4k views
in Technique[技术] by (71.8m points)

vb.net - How to avoid <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">?

I have built a very simple web service using the VB.NET "WCF Rest Service Application" project template (Is this a good choice?). I works well except the fact that there is

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">
...
</string>

added to my answer.

I have declared my return value as a String :

<WebInvoke(UriTemplate:="member/login", Method:="POST",
            responseformat:=WebMessageFormat.Json, 
            BodyStyle:=WebMessageBodyStyle.Bare)>
Public Function Create(data As IO.Stream) As String

        Dim strData As String = New IO.StreamReader(data).ReadToEnd()
        Dim UserAccessForm As LoginAccess = Me.getAnswer(strData)
        Dim jsonAnswer As String
        jsonAnswer = Newtonsoft.Json.JsonConvert.SerializeObject(UserAccessForm, Newtonsoft.Json.Formatting.None)
        Return jsonAnswer
End Function

So instead of having as answer this :

{"logged":false,"userID":"0","message":"Empty body"}

I get :

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">
{"logged":false,"userID":"0","message":"Empty body"}
</string>

Is there any way I can avoid this unwanted serialization of my string answer?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

I just ran into this problem and solved it by applying the XmlSerializerFormat attribute to the service contract.

Here's a c# snippet - hope it helps you.

[ServiceContract(Namespace = "")]
[XmlSerializerFormat]
interface IHuggies
{
    [OperationContract]
    [WebInvoke(
        Method = "POST",
        UriTemplate = "/CheckIfConsumerExists")]
    bool CheckIfConsumerExists(string parameters);
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...