首页 / 知识
关于c#:XmlSerializer – 有一个反映类型的错误
2023-04-15 05:18:00

XmlSerializer - There was an error reflecting type使用C.NET 2.0,我有一个复合数据类,上面确实有
我有个例外说:
在数据类内部有另一个复合对象。这是否还需要具有 看看你得到的内在例外。它将告诉您它在序列化时遇到问题的字段/属性。 通过使用 我不认为 请记住,序列化类必须具有默认(即无参数)构造函数。如果您根本没有构造函数,那就可以了;但是如果您有一个带有参数的构造函数,那么您也需要添加默认的构造函数。 我也遇到了类似的问题,结果发现序列化程序无法区分我拥有的两个同名类(一个是另一个的子类)。内部异常如下所示: "types basenamespace.class1"和"basenamespace.subnamespace.class1"都使用命名空间""中的XML类型名称"class1"。使用XML属性为类型指定唯一的XML名称和/或命名空间。 其中basenamespace.subnamespace.class1是basenamespace.class1的子类。 我需要做的是为其中一个类添加一个属性(我添加到基类中):
注意:如果您有更多的类层,您还需要向它们添加一个属性。 还要注意, XML序列化和继承的类型 型 我最常见的原因是:
如果您需要处理特定的属性(如字典或任何类),您可以实现IXMLSerialiable接口,这将允许您以更详细的编码为代价获得更多的自由。
有一篇有趣的文章,展示了一种实现"扩展"XML序列化程序的复杂方法的优雅方法。 文章说:
因为这样,我建议您实现自己的 …使用反射实现自定义 序列化图中的所有对象都必须是可序列化的。 由于 更改XmlSerializer输出临时程序集的位置 如何:调试到.NET XmlSerializer生成的程序集中 我发现.NET 2.0中的Dictionary类不能使用XML进行序列化,但在使用二进制序列化时可以很好地进行序列化。 我在这附近找到了一份工作。 我最近在添加新属性时在Web引用分部类中得到了这个。自动生成的类正在添加以下属性。
我需要添加一个类似的属性,它的顺序比自动生成序列中的最后一个高,这为我修复了它。 我也犯了同样的错误,发现问题出在 相反,我们可以使用 我也认为序列化属性必须在对象上,但除非我是一个完整的noob(我正在进行一个深夜编码会话),否则代码片段编译器将执行以下操作:
我可以想象XMLSerializer正在使用公共属性上的反射。 我有一种情况,连续两个元素的顺序是相同的
…一些代码…
当我更改代码以使类中每个新属性的顺序增加一个时,错误就消失了。 型 我有同样的问题,在我的例子中,对象有一个readOnlyCollection。集合必须实现Add方法才能序列化。 型 [system.xml.serialization.xmleElementAttribute("strFieldName",form=system.xml.schema.xmlschemaForm.unqualified)] //或 [XML忽略]字符串[]strfielsname get;set; 还要注意,您不能序列化用户界面控件,并且您要传递到剪贴板上的任何对象都必须是可序列化的,否则它不能传递给其他进程。 我一直在用 域类在客户端和服务器之间共享。 |
最新内容
相关内容
linux命令大全数据库?
linux命令大全数据库?,服务,系统,平台,状态,软件,通用,环境,数据,神州,地址,在Linux上用命令怎么连接数据库(linux连接oracle数据库命令)登录linux上数据库的命令?
linux上数据库的命令?,服务,系统,信息,地址,命令,密码,工具,管理,数据,单位,在Linux上用命令怎么连接数据库(linux连接oracle数据库命令)1、登linux命令dm数据库?
linux命令dm数据库?,地址,软件,时间,设备,名字,服务,位置,名称,公司,命令,linux创建dm数据库超时linux/sys下无法新建 方法如下打开c盘,在用户查看linux类型命令?
查看linux类型命令?,系统,信息,命令,状态,数据,数字,情况,地址,类型,文件,linux查看系统命令是什么1、linux怎么查看系统版本呢,下面就让我们来linux命令错误代码?
linux命令错误代码?,系统,密码,电脑,网络,手机,网址,软件,代码,设备,老板,Linux管理常见错误1、检查权限:使用文件浏览器和终端,检查文件的访问linux删除类型命令?
linux删除类型命令?,系统,档案,命令,文件,名称,环境,数据,不了,目录,文件夹,关于linux的删除命令命令格式:rm [选项] 文件… 命令功能:删除一个linux存储数据命令?
linux存储数据命令?,系统,管理,数据,设备,情况,地址,工作,命令,服务,平台,Linux文件系统操作命令1、cat:可以显示文件的内容(经常和more搭配使linux数据库查找命令?
linux数据库查找命令?,位置,名称,状态,服务,软件,信息,系统,命令,名字,密码,在linux中如何用命令查找文件在哪使用查找命令 “find”命令允许linux数据库同步命令?
linux数据库同步命令?,信息,系统,汽车,车辆,服务,工作,通信,一致,分析,数据,DB2数据库在linux操作系统的指令有哪些?1、linux系统常用操作命令查看linux库类型命令?
查看linux库类型命令?,系统,工作,信息,状态,电脑,命令,工具,代码,地址,发行,如何查看Linux上程序或进程用到的库查看程序依赖的动态库:readelflinux建立数据库命令?
linux建立数据库命令?,软件,系统,工作,数据,密码,工具,数据库,一致,网络,服务,linux中在shell中怎么创建一个数据库1、以下的文章主要讲述的是linux命令进数据库?
linux命令进数据库?,地址,系统,名字,服务,密码,命令,读法,数据库,操作系统,主机,linux系统mysql数据库怎么进入数据库首先确保linux下mysql安