我有一個枚舉類型在我的第一個組件,如下圖所示:移動枚舉到不同的裝配
public enum MyEnum
{
ONE,
TWO,
THREE
}
因爲我想延長我的申請,我決定來移動到不同的組件(DLL)和鏈接到我的第一個程序集。
當我這樣做時,我得到了一個奇怪的結果,當我滅絕當enum在第一個程序集中時序列化的類時,它們都默認返回第一個枚舉成員。
是否有解決方案如何解決這個問題? 我甚至嘗試解析它喜歡:
(MyEnum)Enum.Parse(typeof(MyEnum), serializer.MyEnumType.ToString());
它沒有任何效果。
PS。我使用了一個二進制序列化器,枚舉在同一個命名空間中,並且仍然具有相同的名稱。
[Serializable]
public class testClass
{
public MyEnum En { set; get; }
}
public class test
{
void Serialize(string file)
{
testClass ser = new testClass();
IFormatter formatter = new BinaryFormatter();
System.IO.FileStream stream = new FileStream(file, FileMode.Create, System.IO.FileAccess.Write, FileShare.None);
formatter.Serialize(stream, ser);
stream.Close();
}
void DeSerialize(string file)
{
IFormatter formatter = new BinaryFormatter();
testClass ser = new testClass();
System.IO.FileStream stream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.None);
ser = (testClass)formatter.Deserialize(stream);
stream.Close();
}
}
顯示您的代碼。 – Steve 2015-03-19 02:37:50
可能的重複:http://stackoverflow.com/questions/12737602/cant-deserialize-with-binaryformatter-after-changing-namespace-of-class – 2015-03-19 02:40:15
另請參閱:http://stackoverflow.com/questions/25701481/is通過binaryformatter-after-chang – 2015-03-19 02:41:05