【发布时间】:2013-02-05 17:06:06
【问题描述】:
我使用这个函数在 xml 文件中序列化一个对象的集合。
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.List1[产品]。 A 型源自 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 在位置“C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll”的上下文“LoadNeither”中。 B 型源自 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 在位置“C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll”的上下文“LoadNeither”中。 在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterList1.Write3_ArrayOfEnvironment(Object 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;
}
}
【问题讨论】:
-
错误可以翻译成英文吗?
-
我认为这只是意味着您尝试的计算机上没有 .net 4.0 程序集并且它失败了。因为它在 GAC 或任何地方都找不到程序集。
-
另一台机器上安装了 .net 4.0 框架。我检查这一点
-
错误已被翻译
标签: c# serialization deployment