C# 如何处理DataContractSerializer中的DBNull?
我有下面的C代码 如果我不填充列[c2],这意味着此数据行中存在DBNull值,那么我在尝试运行s.WriteObject()时将遇到错误 错误: 使用数据协定名称键入“System.DBNull” “DBNull:”不是 预期。如果您正在使用,请考虑使用DATACONTracTracver DataContractSerializer或将任何静态未知的类型添加到 已知类型的列表-例如,通过使用KnownTypeAttribute 属性,或将它们添加到传递给 序列化程序 但根据MS文件“ DBNull类型以特殊方式处理。它是一种单体类型, 反序列化后,反序列化程序将尊重单例 约束,并将所有DBNull引用指向singleton实例。 由于DBNull是一种可序列化类型,因此需要 序列化格式化程序权限 DBNull似乎是一种受支持的类型,我在这里真的很困惑。 请哪位大师分享几盏灯好吗?比如我该怎么办 我知道我可以扫描所有表行,并查找列值是否等于DBNull.value,如果是,我会为此列设置一个空字符串或其他内容,但这不是我想要的,因为这将“篡改”DataTable值C# 如何处理DataContractSerializer中的DBNull?,c#,.net,serialization,C#,.net,Serialization,我有下面的C代码 如果我不填充列[c2],这意味着此数据行中存在DBNull值,那么我在尝试运行s.WriteObject()时将遇到错误 错误: 使用数据协定名称键入“System.DBNull” “DBNull:”不是 预期。如果您正在使用,请考虑使用DATACONTracTracver DataContractSerializer或将任何静态未知的类型添加到 已知类型的列表-例如,通过使用KnownTypeAttribute 属性,或将它们添加到传递给 序列化程序 但根据MS文件“ DBN
提前感谢您的帮助 将DBNull添加到
knownTypes
列表中
var s = new DataContractSerializer(typeof(object[]), new [] { typeof(DBNull) });
var s = new DataContractSerializer(typeof(object[]), new [] { typeof(DBNull) });