8

VB.NET の "WCF Rest Service Application" プロジェクト テンプレートを使用して、非常に単純な Web サービスを構築しました (これは良い選択ですか?)。あるという事実を除いて、私はうまく機能します

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

私の答えに追加されました。

戻り値を 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

したがって、これに答える代わりに:

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

私は得る:

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

文字列の回答のこの不要なシリアル化を回避する方法はありますか?

4

5 に答える 5

4

私はちょうどこの問題に遭遇し、XmlSerializerFormat属性をサービス コントラクトに適用することで解決しました。

これが ac# スニペットです。お役に立てば幸いです。

[ServiceContract(Namespace = "")]
[XmlSerializerFormat]
interface IHuggies
{
    [OperationContract]
    [WebInvoke(
        Method = "POST",
        UriTemplate = "/CheckIfConsumerExists")]
    bool CheckIfConsumerExists(string parameters);
}
于 2013-02-21T03:53:57.967 に答える
-3
public String cleanOUTPUT(String OUTPUT) {
    OUTPUT = OUTPUT.replaceAll("<string xmlns=\"http://schemas.microsoft.com/2003/10/Serialization/\">","");
    OUTPUT = OUTPUT.replaceAll("</string>", "");    
return OUTPUT;
}
于 2014-07-30T11:53:03.177 に答える