私は現在、クラスアップデータを作成しようとしています。c# - 変数/プロパティの同じセットを含む異なるクラスを比較する
整数含まれ、シリアライズにClassAがある - 、そして例えば -variable 文字列。 ClassAはオブジェクトにキャストされ、シリアライズされ、バイナリファイルに保存されます。 ClassAに、の整数 - との文字列の2つを含むように変更するプログラムアップデートがあります。旧ClassAは、ClassA_0に改名されました。 データがバイナリファイルから戻されるとき、逆並列化されたオブジェクトが、アップデーターメソッドに引数として渡されます。
問題がある:どのように私はそれがとして保存されていた「バージョン」をdertermineすることオブジェクトにClassA_0とにClassAを比較するのですか?
編集:
[Serializable]
public class ClassA
{
int VarA;
int VarB;
string VarC;
public ClassA()
{
//[...]
}
public void MethodX()
{
//[...]
}
}
[Serializable]
public class ClassA_0
{
int VarA;
string VarB;
public ClassA()
{
//[...]
}
public void MethodX()
{
//[...]
}
}
これらはダミーのクラスなので、私は、コンストラクタやメソッド内のコードが指定されていませんでした。
あなたは、あらかじめデシリアライズするタイプを知る必要があります。ですから、 'オブジェクト 'に逆直列化することはできませんし、実際にどのような型であるのか試してみてください。 – CodeCaster
ClassAとClassA_Oのクラス構造を投稿することができます – Alex
"シリアライズ" - シリアライズ方法?これは 'BinaryFormatter'ですか?もしそうなら...私はそうではありません - シリアル化のアプローチを変更する柔軟性はありますか? –