相关疑难解决方法(0)

在C#中序列化和反序列化表达式树

有没有办法在C#中反序列化表达式,我想将表达式存储在数据库中并在运行时加载它们.

c# serialization expression-trees

89
推荐指数
4
解决办法
4万
查看次数

将表达式树转换为源代码字符串

我有一个具有以下签名的功能......

public string DoJunk(Expression<Func<bool>> expression)
Run Code Online (Sandbox Code Playgroud)

我试图找到一种方法将"表达式"参数转换回类似于原始源代码的东西(或者至少是原始源代码的ac#表示).所以,如果有人像这样调用这个函数......

DoJunk(() => (i + j) * 9 == Math.Round((double)j / (i - 3), 4))
Run Code Online (Sandbox Code Playgroud)

...我希望能够将表达式转换为此...

(i + j) * 9 == Math.Round((double)j / (i - 3), 4)
Run Code Online (Sandbox Code Playgroud)

有没有人这样做过?

.net lambda

17
推荐指数
2
解决办法
5925
查看次数

.NET - 将语句lambda body转换为字符串

给出以下语句lambda示例:

var fMyAction = new Action(() =>
 {
    x += 2;
    something = what + ever; 
 });
Run Code Online (Sandbox Code Playgroud)

有什么方法可以获得lambda的主体并将其转换为字符串?(最终会允许为Action这种类编写扩展方法的东西:fMyAction.Dump()将返回"x += 2; something = what + ever;").

谢谢

.net c# lambda

7
推荐指数
1
解决办法
2636
查看次数

将Func委托转换为字符串

有没有办法将现有的Func委托转换为这样的字符串:

Func<int, int> func = (i) => i*2;
string str = someMethod(func); // returns "Func<int, int> func = (i) => i*2"
Run Code Online (Sandbox Code Playgroud)

或者至少接近它

c# delegates func

6
推荐指数
1
解决办法
2052
查看次数

标签 统计

c# ×3

.net ×2

lambda ×2

delegates ×1

expression-trees ×1

func ×1

serialization ×1