4
我是C#的新手,我試圖將一些信息寫入文件。我運行正常,當我在同一個cs文件Car類節目,但是當我刪除這個類到項目中的另一個cs文件,我得到的使用C#序列化異常使用C#
運行時錯誤「SerializationException了未處理:ObjectManager發現無效數量的修正,這通常表明Formatter中存在問題「。
下面是包含Car類的代碼。當我將該類移動到它自己的Car.cs文件時,錯誤開始引發。
namespace ConsoleApplication2
{
class Program
{
[Serializable()]
public class Car
{
public string Make { get; set; }
public string Model { get; set; }
public int Year { get; set; }
public Car(string make, string model, int year)
{
Make = make;
Model = model;
Year = year;
}
}
/// <summary>
/// Deserializes list of cars and returns the list to user
/// </summary>
/// <returns>Returns deserialized car list</returns>
public List<Car> ReadList()
{
//create local list to hold data
List<Car> carList = new List<Car>();
try
{
using (Stream stream = File.Open("data.bin", FileMode.Open))
{
BinaryFormatter bin = new BinaryFormatter();
//point carList to deserialized stream
carList = (List<Car>)bin.Deserialize(stream);
}
}
catch (IOException)
{
}
return carList;
}
看看以下內容:https://social.msdn.microsoft.com/Forums/en-US/b310c71a-2479-4a93-888a-29294cecbe09/changing-a-namespace-causes-errors-when- using-binaryformatterdeserialize-to-reload-object-data?forum = csharplanguage –
以下是類似的:http://programmingandwhatnot.blogspot.com/2010/09/binaryformatter-invalid-number-of.html –