Okay, ich habe eine Klasse „EIR“, die eine Liste von seiner Basisklasse „ExpenseReport“ als solche basiert:„Kann nicht das Objekt von Typ‚System.String‘‚Payroll.EIR‘zu geben“
using System;
using System.Collections.Generic;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization;
using System.IO;
using System.Linq;
using System.Text;
namespace Payroll
{
[Serializable]
public class EIR : List<ExpenseItem>
{
public void WriteToFile(string filename)
{
try
{
BinaryFormatter formatter = new BinaryFormatter();
FileStream stream = new FileStream("D:\\myExpensesUpdated.bin", FileMode.Create, FileAccess.Write, FileShare.None);
formatter.Serialize(stream, filename);
stream.Close();
}
catch (Exception ex)
{
Console.WriteLine("Unable to serialize Expenses: {0}", ex.Message);
}
}
public static EIR ReadFromFile(string filename)
{
EIR iRost = new EIR();
try
{
BinaryFormatter formatter = new BinaryFormatter();
FileStream stream = new FileStream("D:\\myExpensesUpdated.bin", FileMode.Open, FileAccess.Read, FileShare.Read);
iRost = (EIR)formatter.Deserialize(stream);
}
catch (Exception ex)
{
Console.WriteLine("Unable to deserialize Expenses: {0}", ex.Message);
}
return iRost;
}
}
}
}
Dieser Teil ist, wo Readfromfile ich ein Problem habe:
im Hauptprogramm wird dieser Teil versucht Readfromfile aufrufen und neu aktualisierten Elemente angezeigt werden, aber ich bekomme die Fehlermeldung „Kann nicht Objekt des Typs‚System werfen .String 'um' Payroll.EIR 'einzugeben. "
try
{
EIR expensesUpdated = EIR.ReadFromFile("D:\\myExpensesUpdated.bin");
foreach (var e in expensesUpdated) Console.WriteLine("Updated: {0}", e.ToString());
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
Wie erhalte ich die iRost zum Payroll.EIR zu werfen, die eine Klasse? Gibt es eine Möglichkeit, eine serialisierte Zeichenfolge in eine Klasse zu konvertieren?
'formatter.Serialize (Strom, Dateiname)' – leppie