Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Generise:将Xml反序列化为继承类的特定类_C#_Wcf_Xml Serialization_Xml Deserialization - Fatal编程技术网

C# Generise:将Xml反序列化为继承类的特定类

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

输入预处理的xml文件以映射特定事务类型

假设我有transactionTypeA transactionTypeB transactionTypeC(都是从TransactionTypes继承的)。以下代码仅供参考,适用于特定的事务类型。例如,将xml数据映射到transactionTypeA:

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]定义的。但我不知道:)