C# Generise:将Xml反序列化为继承类的特定类
输入预处理的xml文件以映射特定事务类型 假设我有transactionTypeA transactionTypeB transactionTypeC(都是从TransactionTypes继承的)。以下代码仅供参考,适用于特定的事务类型。例如,将xml数据映射到transactionTypeA:C# Generise:将Xml反序列化为继承类的特定类,c#,wcf,xml-serialization,xml-deserialization,C#,Wcf,Xml Serialization,Xml Deserialization,输入预处理的xml文件以映射特定事务类型 假设我有transactionTypeA transactionTypeB transactionTypeC(都是从TransactionTypes继承的)。以下代码仅供参考,适用于特定的事务类型。例如,将xml数据映射到transactionTypeA: byte[] byteArray = Encoding.UTF8.GetBytes(xmlContent); MemoryStream tempMemoryStream = new MemoryStr
byte[] byteArray = Encoding.UTF8.GetBytes(xmlContent);
MemoryStream tempMemoryStream = new MemoryStream(byteArray);
DataContractSerializer serializer = new DataContractSerializer(typeof(transactionTypeA));
transactionTypeA variavlename= (transactionTypeA)serializer.ReadObject(tempMemoryStream);
现在,我想让它成为通用的,这样当一个xml文件在其中时,我就可以知道它是哪个特定的事务
DataContractSerializer serializer = new DataContractSerializer(typeof(ThatCorrespondingTransactionType));
ThatCorrespondingTransactionType variavlename= (ThatCorrespondingTransactionType)serializer.ReadObject(tempMemoryStream)
需要帮忙吗?我尝试只使用根父TransactionTypes,但它给出:SerializationException未经用户代码处理
非常感谢 也许吧?您是要映射到
动态
类还是要映射到泛型类型参数?每个类是否包含不同的成员?这些类型有什么不同?问题昨天就解决了,使用xlst将输入xml转换为父xml格式的类型。应该还有其他好方法,因为所有类都是用[knownType class definition]定义的。但我不知道:)