当前位置:  开发笔记 > 编程语言 > 正文

有一种简单的方法可以将(lambda表达式)字符串解析为Action委托吗?

如何解决《有一种简单的方法可以将(lambda表达式)字符串解析为Action委托吗?》经验,为你挑选了0个好方法。

我有一个方法,根据传递给它的动作委托改变"帐户"对象:

public static void AlterAccount(string AccountID, Action 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 AccountAction = MagicLibrary.ConvertMagically>(AccountActionText);
  AccountAction.Invoke(someAccount);
  someAccount.Save();
}

它可以像以下一样使用:

AlterAccount("Account1234", "a => a.Enabled = false");

禁用帐户"Account1234".

我已经看过linq动态查询库了,它似乎或多或少地做了我想要的但是对于Func类型的委托,而我对表达式树等的了解并不是很好来弄清楚如何实现我的目标想.

有没有一种简单的方法可以做我想要的,或者我是否需要正确学习表达式并编写大量代码?

(我想这样做的原因是允许从powershell脚本中批量更新帐户对象的简单方法,其中用户可以指定lambda表达式来执行更改.)

推荐阅读
依然-狠幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有