我使用此函数在xml文件中序列化一个对象集合。列表<Object>序列化在dev计算机上工作,但在其他计算机上失败
public void SerializeEnvironment()
{
if (xs == null) xs = new XmlSerializer(typeof(IList<Classes.Environment>));
using (StreamWriter wr = new StreamWriter(ConfigFilePath))
xs.Serialize(wr, Environments);
}
该程序在我的开发机器上完美工作。
System.InvalidCastException: [A] System.Collections.Generic.List
1[Product] cannot be cast to [B]System.Collections.Generic.List
1 [产品]但是,当我让其他计算机上的部署,该方案对序列化方法与此错误失败。 类型A来自位于'C:\ Windows \ Microsoft.Net \ assembly \ GAC_32 \ mscorlib \ v4.0_4'上下文'LoadNeither'中的'mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089' .0.0.0__b77a5c561934e089 \ mscorlib.dll中”。 类型B来自位于'C:\ Windows \ Microsoft.Net \ assembly \ GAC_32 \ mscorlib \ v4.0_4'上下文'LoadNeither'中的'mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089' .0.0.0__b77a5c561934e089 \ mscorlib.dll中”。 在Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterList1.Write3_ArrayOfEnvironment(对象o)
我测试很多事情要解决,但没有成功。 预先感谢任何建议或解决方案:)
此外,在这里我的对象类:
[Serializable]
public class Environment
{
public string name { get; set; }
public string value { get; set; }
public Environment(){}
public Environment(string Name, string Value)
{
name = Name;
value = Value;
}
}
错误可以翻译成英文吗? – 2013-02-20 15:56:55
我认为这只是意味着你没有在你试过的计算机上安装.net 4.0程序集,但它失败了。由于它在GAC或任何地方找不到组件。 – dutzu 2013-02-20 15:57:06
.net 4.0框架安装在另一台机器上。我检查了这一点 – mdelpeix 2013-02-20 15:59:32