【发布时间】:2013-03-26 06:39:55
【问题描述】:
无法反序列化数据协定类型“DTO.AccountData”,因为成员“properties”不是公共的。将成员设为公开将修复此错误。或者,您可以将其设为内部,并在程序集上使用 InternalsVisibleToAttribute 属性以启用内部成员的序列化 - 有关更多详细信息,请参阅文档。请注意,这样做有一定的安全隐患。
在我的班级中,所有成员变量都是公开的
public class AccountData
{
public string mdn
{
get;
set;
}
.....
//other public varibales
.....
public Dictionary<string, string> properties
{
get;
set;
}
}
更新
我尝试了 [DataContract] 和 [DataMember] 属性,但不起作用。
【问题讨论】:
-
您是否重新编译了您的解决方案?
-
从一开始就是
public,是的,我清理并重新编译了项目 -
您是否尝试使用 [DataContract] 属性标记类并使用 [DataMember] 标记其可序列化成员?
-
是的,我也试过了..但不起作用..
-
Ï如果您尝试过,为什么您的样本没有全部属性! :D