问题:
我写一个类,它继承CollectionBase,我想让它可以被序列化,如何实现?
如果类实现接口ICollection,可以被序列化;但是CollectionBase他已经实现了ICollection了,为什么我继承了CollectionBase,不能被序列化;
谢谢

解决方案 »

  1.   

    既要继承CollectionBase,又要能被序列化
      

  2.   

    看看这里吧,分析的不错
    http://www.pconline.com.cn/pcedu/empolder/gj/vc/10305/173628.html
      

  3.   

    如果想派生类也能够被Serialize的话,那么这个派生类也必须被Serializable标记。
      

  4.   

    代码如下:
    using System;
    using System.Collections;
    using System.Runtime.Serialization;
    namespace DRCNet_Demo
    {
    /// <summary>
    /// CUserIP 的摘要说明。
    /// </summary>
    [Serializable]
    public class CUserIP
    {
    public CUserIP()
    { }
    public string StartIp="127.0.0.1";
    public string EndIp="127.0.0.1";
    }
    [Serializable]
    public class CUserIPCollection:CollectionBase {
    private ArrayList al=new ArrayList();
    public string CollectionName;
    public CUserIPCollection(){}
    #region ICollection 成员 public bool IsSynchronized
    {
    get
    {
    return false;
    }
    } public int Count
    {
    get
    {
    return al.Count;
    }
    } public void CopyTo(Array array, int index)
    {
    } public object SyncRoot
    {
    get
    {
    return this;
    }
    } #endregion #region IEnumerable 成员 public IEnumerator GetEnumerator()
    {
    return al.GetEnumerator();
    } #endregion
    public void Add(CUserIP pUserIP)
    {
    List.Add(pUserIP);
    }
    public void Remove(int index)
    {
    if (index > Count - 1 || index < 0)
    {
    throw  new Exception("索引无效");
    }
    else
    {
    List.RemoveAt(index); 
    }
    }
    public CUserIP Item(int Index)
    {
    return (CUserIP) List[Index];
    } }
    }
    using System;
    using System.Collections;
    namespace DRCNet_Demo
    {
    /// <summary>
    /// CUser 的摘要说明。
    /// </summary>
    [Serializable]
    public class CUser
    {
    public CUser()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    }
    public string LoginId="";
    public string Password="";
    public string Unit="";
    public string BetchComputer="0";
    public string UserName="";
    public CUserIPCollection UserIP=new CUserIPCollection(); }
    }
    一共3个类.CUserIP,CUserIPCollection,CUser;我想让CUser类即支持序列化,而且Cuser.UserIP又能被DataGrid数据源绑定谢谢