要序列化的类中包含一个自定义集合的成员。代码大致如下
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>哪位高手能解决?是不是哪个方法前面更上 [ .... ] 那种形式的说明,一直没有搞懂这种说明怎么用 :(
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>哪位高手能解决?是不是哪个方法前面更上 [ .... ] 那种形式的说明,一直没有搞懂这种说明怎么用 :(
例如:
public string t
{
get{
return ....;
}
}
use ISerializable.GetObjectData to control custom serialization and deserialization
其实楼上已经说了,我再补充点
重写GetObjectData装News 显式序列化 ,同样需要重写反序列化构造函数
public class PermissionNews:ICollection // 这个集合中的类型是 PermissionNewsItem
{
public PermissionNewsItem this[int id]
{
get{return (PermissionItemNewsItem) al[index];}
}
...
}的索引器重写了造成的.
改成上面的那样就好了揭帖给分