我可以在.NET 4.0项目中使用System.Xml 2.0吗?

时间:2012-03-21 09:38:27

标签: .net reflection xml-serialization

我需要在刚刚从.NET 2.0升级的.NET 4.0项目中反序列化一堆XML文件。因为序列化函数have changed,反序列化现在失败了,因为我的类继承的第三方对象库中的一堆属性没有用[XmlIgnore]标记。

问题:我可以使用反射从.NET 4.0项目中调用2.0版本的System.Xml.dll中的Deserialize()函数吗?

我试过了:

Assembly.Load("System.Xml, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089");

但是FileNotFoundException失败了(它会搜索GAC,对吗?)

2 个答案:

答案 0 :(得分:1)

你不能--AFAIK。

为项目设置目标框架时,就是这样。您可以获得System.Xml 2.0或4.0。

然而,我对2.0和4.0之间的序列化之间的区别感到困惑。肯定[XmlIgnore]在那里有2.0?

答案 1 :(得分:1)

您可以编写一个针对framework2的wee dll来返回该类的v2版本,然后从中填充v4版本。在某处/ somehoe有一面旗帜,你可以在它们装载时翻转它们。

你确定为什么反序列化会失败,我已经预料到它会向后兼容,事实上它不是那么可怕......