2012-03-19 7 views
0

最初の型の問題は、タイプがwebservice(asmx)のmethosを呼び出すときに型が常にnullとして処理されることでした。石鹸を調べると、そのタイプが空の要素になっていることが確認されました。そこで私は簡単なテストを試みました。
はここで今ここでそれをシリアル化するためにいくつかの簡単なコードはもちろん XmlSerializerで型が正しくシリアライズされない理由

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.233")] 
[System.SerializableAttribute()] 
[System.Diagnostics.DebuggerStepThroughAttribute()] 
[System.ComponentModel.DesignerCategoryAttribute("code")] 
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://dto12.api.echosign")] 
public partial class SendDocumentInteractiveOptions { 

    private bool authoringRequestedField; 

    private bool authoringRequestedFieldSpecified; 

    private bool autoLoginUserField; 

    private bool autoLoginUserFieldSpecified; 

    private bool noChromeField; 

    private bool noChromeFieldSpecified; 

    /// <remarks/> 
    public bool authoringRequested { 
     get { 
      return this.authoringRequestedField; 
     } 
     set { 
      this.authoringRequestedField = value; 
     } 
    } 

    /// <remarks/> 
    [System.Xml.Serialization.XmlIgnoreAttribute()] 
    public bool authoringRequestedSpecified { 
     get { 
      return this.authoringRequestedFieldSpecified; 
     } 
     set { 
      this.authoringRequestedFieldSpecified = value; 
     } 
    } 

    /// <remarks/> 
    public bool autoLoginUser { 
     get { 
      return this.autoLoginUserField; 
     } 
     set { 
      this.autoLoginUserField = value; 
     } 
    } 

    /// <remarks/> 
    [System.Xml.Serialization.XmlIgnoreAttribute()] 
    public bool autoLoginUserSpecified { 
     get { 
      return this.autoLoginUserFieldSpecified; 
     } 
     set { 
      this.autoLoginUserFieldSpecified = value; 
     } 
    } 

    /// <remarks/> 
    public bool noChrome { 
     get { 
      return this.noChromeField; 
     } 
     set { 
      this.noChromeField = value; 
     } 
    } 

    /// <remarks/> 
    [System.Xml.Serialization.XmlIgnoreAttribute()] 
    public bool noChromeSpecified { 
     get { 
      return this.noChromeFieldSpecified; 
     } 
     set { 
      this.noChromeFieldSpecified = value; 
     } 
    } 
} 

WSDL

から生成された私のタイプです。

SendDocumentInteractiveOptions sdio = new SendDocumentInteractiveOptions(); 
sdio.authoringRequested = true; 
sdio.autoLoginUser = true; 
sdio.noChrome = true; 
XmlSerializer xmlSer = new XmlSerializer(typeof(SendDocumentInteractiveOptions)); 
XmlWriter xw = new XmlTextWriter(@"g:\test.xml", null); 
xmlSer.Serialize(xw, sdio); 
xw.Close(); 

そして、ここで結果のXML

& LTある?xmlのバージョン= "1.0"? & GT & ltSendDocumentInteractiveOptionsのxmlns:のxsd = "http://www.w3.org/2001/XMLSchema" のxmlns:XSI = "http://www.w3.org/2001/XMLSchema-instance"/& GT

ここで私は何が欠けています。私のパブリックプロパティがシリアル化されないのはなぜですか?

答えて

1

これは古い質問のようですが、まあまあです。私は解決策が別の質問"Why isn't my public property serialized by the XmlSerializer?"にあるかもしれないと思います。その答えの一部は、属性がシリアライズされない理由を一覧表示し、そのリストにある

  • それがある公共のブールFooSpecified {を取得または設定します;}あなたのコードで

を返されたプロパティを、さまざまなブール値を設定しますが、関連する指定値を設定します。私は似たような問題に直面していて、指定された値を設定することでそれが解決されました。

関連する問題