ユーザーがカスタム コマンドを作成し、必要に応じて実行するプログラムを作成しています。その結果、次のようなクラスがあります。
public class Command
{
Action c { get; set; }
// Overloaded Constructors------------------------------------
// changes the volume
public Command(int volumeChange)
{
c = ()=>
SomeClass.ChangeMasterVolume(volumeChange);
}
// Animate something
public Command(int x, int y)
{
c = ()=>
SomeClass.MoveMouse(x,y);
}
// etc.. there are more contructors....
//---------------------------------------------------------
public void ExecuteCommand()
{
c();
}
}
ユーザーがアプリケーションを閉じたら、それらのコマンドをディスクのどこかに保存したいと思います。約 200 の異なるコマンドがあり、そのクラスからインスタンスをシリアル化できれば便利です。Action が含まれているため、シリアル化することはできません。
実行するコマンドを決定するために巨大な switch ステートメントを作成する必要がなければ、それは素晴らしいことです。これに対処する最善の方法は何ですか?