1

こんにちは、WCF/REST から XML カスタムを取得する必要がありますが、コロンが含まれているため、プロパティの名前が希望どおりにシリアル化されません。

エラー応答の私の DataContract

[DataContract(Namespace = "xxxx:xxxx:rest", Name = "hs:rest")]                 
public class ErrorResult
{
 [DataMember(Order = 0, Name = "status")]
    string Status
    {
        get
        {
            return "ERROR(5698)";
        }
        set { }
    }
    [DataMember(Order = 1, Name = "reason")]
    public string Reason { get; set; }
    [DataMember(Order = 2, Name = "extendedMessage")]
    public string ExtendedMessage { get { return string.Empty; } set { } }
    [DataMember(Order = 3, Name = "result")]
    public string Result { get { return string.Empty; } set { } }
    [DataMember(Order = 4, Name = "type")]
    public string Type { get { return string.Empty; } set { } }
    [...]
}

私のシリアライザー

public string XmlTranslation(ErrorResult error)
    {

        using (var memoryStream = new MemoryStream())
        {
            using (var reader = new StreamReader(memoryStream))
            {
                var serializer = new DataContractSerializer(error.GetType());
                serializer.WriteObject(memoryStream, error);
                memoryStream.Position = 0;
                return reader.ReadToEnd();
            }
        }    

これらの方法を使用し、フィドラーを使用してネットワーク通信を分析すると、次の結果が得られます。

リクエスト:(重要ではありません)

<?xml version="1.0" encoding="UTF-8"?><rest xmlns="xxxx:xxxx:rest" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance ">
<type>date</type> 
<domain>test.it</domain>
<date>2009-03-13</date>
<page>1</page>
<reportType>daily</reportType>
<actionName>store</actionName>
</rest>

応答:

<hs_x003A_rest xmlns="xxxx:xxxx:rest" xmlns:i="http://www.w3.org/2001/XMLSchema-
instance">
<status>ERROR(5698)</status>
<reason>InternalError(1011)</reason>
<extendedMessage/>
<result/>
<type/>
</hs_x003A_rest>

「hs_x003A_rest」のような名前が表示されますが、「hs: rest」と表示されます。何か提案はありますか? あなたの答えを前もって感謝します

4

0 に答える 0