2009-08-27 10 views
0

このクラスで[XmlInclude(typeof(AutoHedgerBaseDataObject))]が正しくデシリアライズする必要がある理由を教えてもらえますか?それは私には分かりません。CSharp/DotNet:シリアライゼーション、ジェネリックス、ベースクラス

[Serializable] 
[XmlInclude(typeof(AutoHedgerBaseDataObject))] 
public abstract class AutoHedgerCommandMessage 
{ 
    #region Variables 

    private string myUpdatedBy; 
    private string myUpdatedTime; 

    #endregion 

    #region Constructors 

    public AutoHedgerCommandMessage(string name)   
    { 
     myUpdatedBy = Environment.UserName; 
     myUpdatedTime = DateTime.Now.ToString("YYYYMMdd HH:mm:ss zzz"); 
    } 

    #endregion 

    #region Properties 

    [XmlElement("updated_by")] 
    public string UpdatedBy 
    { 
     get { return myUpdatedBy; } 
     set { myUpdatedBy = value; } 
    } 


    [XmlElement("updated_time")] 
    public string UpdatedTime 
    { 
     get { return myUpdatedTime; } 
     set { myUpdatedTime = value; } 
    } 


    #endregion 

    #region Methods 

    protected T[] ToArrayOfType<T>(IList<string> ids, string source) 
     where T : AutoHedgerBaseDataObject, new() 
    { 
     T[] list = new T[] { }; 
     if (ids != null) 
     { 
      list = new T[ids.Count]; 
      for (int i = 0; i < ids.Count; i++) 
      { 
       list[i] = new T(); 
       list[i].Id = ids[i]; 
       list[i].Source = source; 
      } 

     } 
     return list; 
    }  

    #endregion 
} 

私たちは、この基本クラスから継承するクラスがいくつかありますが、それらの一方のみがXmlIncludeせずにシリアル化するために失敗し、それが何のシリアライズ可能なプロパティやデータを持っていないと、ベース上の任意のメソッドを呼び出すことはありませんクラスですクラス。基底クラスや派生クラスで何かがあなたが明示的インターフェイスに言及didntのことをシリアライズする項目のリストを引き起こしているので、(このクラス自体は公開does notのおそらく

[Serializable()] 
[XmlRoot(ElementName = "command")] 
public class GetAutoHedgerHedgesCommand : AutoHedgerCommandMessage 
{ 
    #region Constructors 

    // Parameterless constructor for serialization/deserialization 
    public GetAutoHedgerHedgesCommand() 
     : base(Name) 
    { 
    } 

    #endregion 

    #region Constants 

    public const string Name = "get_autohedger_hedges"; 

    #endregion   
} 

答えて

関連する問題