渡されたアクション デリゲートに基づいて「アカウント」オブジェクトを変更するメソッドがあります。
public static void AlterAccount(string AccountID, Action<Account> AccountAction) {
Account someAccount = accountRepository.GetAccount(AccountID);
AccountAction.Invoke(someAccount);
someAccount.Save();
}
これは意図したとおりに機能します...
AlterAccount("Account1234", a => a.Enabled = false);
...しかし、今私が試してみたいのは、次のような方法です:
public static void AlterAccount(string AccountID, string AccountActionText) {
Account someAccount = accountRepository.GetAccount(AccountID);
Action<Account> AccountAction = MagicLibrary.ConvertMagically<Action<Account>>(AccountActionText);
AccountAction.Invoke(someAccount);
someAccount.Save();
}
その後、次のように使用できます。
AlterAccount("Account1234", "a => a.Enabled = false");
アカウント「Account1234」を無効にします。
私はlinq dynamic query libraryを見てきました.Funcタイプのデリゲートを除いて、多かれ少なかれ私が望むことをしているようですが、式ツリーなどに関する私の知識は、私が何を達成するかを理解するのに十分ではありません.欲しいです。
私がやりたいことを簡単に行う方法はありますか、それとも式を適切に学習して大量のコードを書く必要がありますか?
(これを行う理由は、ユーザーがラムダ式を指定して変更を実行できる PowerShell スクリプトからアカウント オブジェクトを簡単に一括更新できるようにするためです。)