1

DataContractJsonSerializer を使用して、Json 文字列を取得できました。
ここで、この Json (「ストリーム」という名前) を XML に変換したいと思います。「[WebInvoke(ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Wrapped)]」を使わない方法はありますか?

Iサービス

[OperationContract]
    string JsonSerializeFromDatabase();
[OperationContract]        
    string XmlSerializeFromJson(string strJson);

クライアント側

WCFService.Service1Client client = new WCFService.Service1Client();
string stream = client.JsonSerializeFromDatabase();
string stream2 = client.XmlSerializeFromJson(stream);
div1.InnerText = stream2;

私が現在持っているサーバーサイド(しかし運がない)

public string XmlSerializeFromJson(string strJson)
    {
        Stream stream1 = new FileStream("temp.xml", FileMode.Create);
        XmlWriter xmlWriter = XmlWriter.Create(stream1);
        XmlSerializerser = new XmlSerializer(typeof(string));
        ser.Serialize(xmlWriter, strJson);

        stream1.Position = 0;
        StreamReader sr = new StreamReader(stream1);
        string strXml = sr.ReadToEnd();
        stream1.Dispose();
        stream1.Close();

        return strXml;
    }
4

1 に答える 1

0

最初に json 文字列を型のインスタンスに逆シリアル化し、次に型のインスタンスを xml にシリアル化するためのシリアライザーを作成する必要があります。

何かのようなもの:

var myInstance = new JavaScriptSerializer().Deserialize<InstanceType>(strJson);
var ser = new XmlSerializer(typeof(InstanceType));
ser.Serialize(xmlWriter, myInstance);
于 2013-10-03T14:07:51.653 に答える