次のようなシリアライズ可能なクラスがあるとします
[Serializable]
public class DatabaseViewModel:MVVM.ObservableObject
{
//fields
//properties
public DatabaseViewModel()
{
//if a serialization file exists then deseralize and make this instance equal to it
//else initialize fields
}
}
呼び出しスコープではなく、クラス内からそのようなことを行うことは可能ですか?
呼び出しスコープで私はただやります
var dbvm = new DatabaseViewModel();
次に、コンストラクターに新しいオブジェクトを作成するか、シリアル化されたオブジェクトをロードするかを決定させます。
私のクラスの中で私はこれを試しました
this = //my serialized object
呼び出しスコープから実行したい場合は、単に実行します
DatabaseViewModel dbvm = null;
if(File.Exists(".../DatabaseViewModel.bin")
dbvm = //deserialize .../DatabaseViewModel.bin
else
dbvm = new DatabaseViewModel();