私が持っているとしましょう
List<object> mainList = new List<object>();
そして、それは含まれています
List<string> stringList = new List<string();
List<CustomClass> custList = new List<CustomClass>();
mainList.Add(stringList);
mainList.Add(custList);
シリアライズするには
Stream stream;
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, mainList);
逆シリアル化するには
Stream stream = (Stream)o;
BinaryFormatter formatter = new BinaryFormatter();
List<object> retrievedList = (List<object>)formatter.Deserialize(stream);
この時点で、ストリームの読み取り (デシリアライズ) が値を取得せずにストリームの最後に達したというエラーが表示されます。
他に何か指定する必要がありますか...
[Serializable]
public class CustomClass { .... }
これを機能させるためのカスタムクラスで?毎回異なるタイプのオブジェクトを含む List> をデシリアライズできませんか?
私は試した
IList list = (IList)Activator.CreateInstance(typeof(custClassList[0]))
これを送受信しようとしましたが、同じ問題が発生しました。
ただし、指定した型またはリストをシリアル化および逆シリアル化することはできますが、動的にする必要があります。