私はOutputInformationという名前のクラスを用意しています。これはデータを取得するために別のコンピュータで保存して読み込みたいものです。C# - バイナリシリアル化InvalidCastException
私はバイナリシリアル化を使用しています。
[Serializable()]
public class OutputInformation
{
public List<string> filenames { get; set; }
public long[] filesizes { get; set; }
}
public void Write()
{
OutputInformation V = new OutputInformation();
V.filesizes = sizearray;
V.filenames = namelist;
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("D:\\MyFile.bin", FileMode.Create,
FileAccess.Write, FileShare.None);
formatter.Serialize(stream, V);
stream.Close();
}
シリアル化はユーザーコントロール内で行われ、ユーザーコントロールでシリアル化を解除すると正常に動作します。
私のメインウィンドウからデシリアライズしようとすると、私は無効な例外を受け取ります。だから私は別のコンピュータからファイルを逆シリアル化しようとすると同じ問題が発生すると思います。
どうすれば解決できますか?クラスをファイルに保存し、後で別のコンピュータから取得するだけです。好ましくは、XMLシリアル化を使用しないでください。
[Serializable()]
public class OutputInformation
{
public List<string> filenames { get; set; }
public long[] filesizes { get; set; }
}
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("D:\\MyFile.bin", FileMode.Open,
FileAccess.Read, FileShare.Read);
OutputInformation obj = (OutputInformation)formatter.Deserialize(stream);
stream.Close();
エラーはInvalidCastExceptionです。追加情報:[A] OutputInformationは[B] OutputInformationにキャストできません。