要序列化的类中包含一个自定义集合的成员。代码大致如下
public class Permission
{
  public bool CanDeleteUser =false ;
  ...
  public PermissionNews News = new PermissionNews() ; // 自定义集合类型的 PermissionNews
}public class PermissionNews:ICollection  // 这个集合中的类型是 PermissionNewsItem
{
  public PermissionNewsItem this[int id]
  {
  }
  ...
}public class PermissionNewsItem()
{
  public bool Delete = false ;
  public bool Select = false ;
...
}我在序列化的时候,Permission.News 总是出不来,大概如下
  <News>
    <PermissionNewsItem xsi:nil="true" />
    <PermissionNewsItem xsi:nil="true" />
    <PermissionNewsItem xsi:nil="true" />
  </News>哪位高手能解决?是不是哪个方法前面更上 [ .... ] 那种形式的说明,一直没有搞懂这种说明怎么用 :(

解决方案 »

  1.   

    use ISerializable.GetObjectData to control custom serialization and deserialization
      

  2.   

    序列化时,只读属性是无法序列化的
    例如:
    public string t
    {
     get{
          return ....;
     }
    }
      

  3.   

    jiangsheng(蒋晟.Net[MVP]) ( ) 信誉:105  2006-02-22 06:31:00  得分: 0  
     
     
       use ISerializable.GetObjectData to control custom serialization and deserialization
      
    其实楼上已经说了,我再补充点
    重写GetObjectData装News 显式序列化 ,同样需要重写反序列化构造函数
      

  4.   

    重写GetObjectData将News 显式序列化 ,同样需要重写反序列化构造函数,将News 还原
      

  5.   

    哭啊哭 ,原来是我把
    public class PermissionNews:ICollection  // 这个集合中的类型是 PermissionNewsItem
    {
      public PermissionNewsItem this[int id]
      {
        get{return (PermissionItemNewsItem) al[index];}
      }
      ...
    }的索引器重写了造成的.
    改成上面的那样就好了揭帖给分