我使用此函數在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