Xml 如何在不知道对象类型或要强制转换的类的存在的情况下反序列化对象

Xml 如何在不知道对象类型或要强制转换的类的存在的情况下反序列化对象,xml,class,object,serialization,reflection,Xml,Class,Object,Serialization,Reflection,大家好,请帮我一个忙,我有许多具有相同结构的自定义类,例如它们都有属性模式,它们的对象属性对我序列化很重要,因为我想将许多应用程序中的许多类中的许多对象保存为日志记录系统,所以我无法在一个解决方案中收集所有类以进行反序列化 如果我的解决方案中有类,我可以使用反射来获取它们的属性和值,并在数据表中导出属性,或者在反序列化之后,将对象强制转换为该类的类型,但我的问题是如何反序列化对象并获取“类型”、“名称”和“值”在我的解决方案中没有类的对象的属性 在这种情况下,当我想要反序列化时,我会收到以下错误

大家好,请帮我一个忙,我有许多具有相同结构的自定义类,例如它们都有属性模式,它们的对象属性对我序列化很重要,因为我想将许多应用程序中的许多类中的许多对象保存为日志记录系统,所以我无法在一个解决方案中收集所有类以进行反序列化

如果我的解决方案中有类,我可以使用反射来获取它们的属性和值,并在数据表中导出属性,或者在反序列化之后,将对象强制转换为该类的类型,但我的问题是如何反序列化对象并获取“类型”、“名称”和“值”在我的解决方案中没有类的对象的属性


在这种情况下,当我想要反序列化时,我会收到以下错误消息:“根元素丢失。”

正如您所提到的,您可以通过反射检查反序列化的对象,并确保这将是您所能拥有的全部,除非您以某种方式拥有对象的类型,我指的是以前在其他程序集中或同一程序集中编译的对象。这意味着你毫无疑问需要装配

但不要失去勇气。通过反射,您可以从对象中检索任何需要的内容,但对象类所在的域所必需的内容除外。例如,您可以有一个反序列化的Product类实例,但是您无法识别Product类正在做什么,以及它的存在哲学是什么。这些内容放在产品域中,与客户、订单、产品线、库存和该域的其他类相关


但是,同样希望您可以通过为您的类定义一些标准行为来克服这些问题,这些行为由所有域中的所有类实现。

您最好评论一下您的编程语言是什么,因为不是每个类都需要强制转换。对于您的特定问题,序列化类定义并将其具体化有什么问题?如果您的语言支持完整的元对象协议,则不会出现重大问题。即使您的解决方案中没有具有该类型的项目,您仍然需要了解该对象-您必须对包含该类型的.dll进行引用。