ASP.NET:确定序列化为XML的对象类型的最佳方法

ASP.NET:确定序列化为XML的对象类型的最佳方法,asp.net,xml,generics,xml-serialization,Asp.net,Xml,Generics,Xml Serialization,我的SQL Server数据库中有一个表,其中保存了用户在我的系统中执行的某些操作的审核信息。诸如谁执行了操作、何时执行以及什么操作等都是可以轻松跨越多个操作的信息片段。但根据执行的操作,可能还有其他特定于该操作的信息需要捕获。为了处理这个问题,我选择向表中添加一个“XML元数据”列,该列保存我创建的不同元数据对象的序列化XML。我为我感兴趣的每个额外跟踪操作创建了一个元数据对象。因此,每个对象负责跟踪其操作的特定额外信息(元数据)。对象被序列化并写入我的新列 我有SystemAction对象,

我的SQL Server数据库中有一个表,其中保存了用户在我的系统中执行的某些操作的审核信息。诸如谁执行了操作、何时执行以及什么操作等都是可以轻松跨越多个操作的信息片段。但根据执行的操作,可能还有其他特定于该操作的信息需要捕获。为了处理这个问题,我选择向表中添加一个“XML元数据”列,该列保存我创建的不同元数据对象的序列化XML。我为我感兴趣的每个额外跟踪操作创建了一个元数据对象。因此,每个对象负责跟踪其操作的特定额外信息(元数据)。对象被序列化并写入我的新列

我有
SystemAction
对象,用于存储此表中的信息,并添加了一个字符串字段,用于保存数据库中的XML字符串。问题是,当我从SystemAction对象读回这个XML时,我正在努力寻找一种方法将它转换回正确的元数据对象。每个元数据对象都有不同的字段,每个对象都有自己的静态方法,该方法采用XML字符串并尝试返回元数据对象类型。所以我可以说:

SomeActionMetadata mdObj=SomeActionMetadata.BuildFromXML(xmlStringFromDB)

但我真的不知道如何说“这里有一些XML可以转换成任意数量的不同对象。找出它,然后给我正确的对象。”

考虑到我当前的实现,我总是可以为每个元数据对象分配一个唯一的ID,该对象存储为每个对象中的一个字段,然后使用case语句打开该ID,并使用相应类的静态构建方法来构建正确的对象。但我希望有比这更自动化的东西。如果我有一个SystemAction对象列表,只想循环遍历它们并生成正确的元数据对象类型,该怎么办


我希望有人以前可能遇到过类似的事情,或者可以给我指一篇文章或一篇文章来帮助我。非常感谢。

正如Subhash Dike在下面的评论中指出的,有一个类似的SO问题能够为我指明正确的方向。

为什么不在System.xml.serialization中使用xml序列化?这是开箱即用的双向xml序列化。可能重复。。你可以试试上面提到的,如果能解决你的问题,请告诉我们problem@Subhash,这确实指向了一个足以解决我的问题的方向。谢谢