【发布时间】:2014-05-09 08:04:47
【问题描述】:
我正在尝试构建一种可以从强类型语句体中捕获分配的方法。方法调用应如下所示:
myObject.Assign(o =>
{
o.SomeProperty = 1;
o.AnotherProperty = "two";
});
我想要一份作业清单;一组MemberAssignment 实例似乎很合适。
我不清楚Assign() 的方法头应该是什么样子。
这是我目前拥有的:
public class MyClass
{
public void Assign(System.Linq.Expressions.Expression<System.Action<MyBunchOfProps>> assignments)
{
}
}
public struct MyBunchOfProps
{
public int SomeProperty { get; set; }
public string AnotherProperty { get; set; }
}
使用语句体和多个赋值,我得到“无法将带有语句体的 lambda 表达式转换为表达式树”。
如果我省略语句体并且只进行一次赋值 (myObject.Assign(o => o.SomeProperty = 1);),我会得到“表达式树可能不包含赋值运算符”。
我是否需要使用其他类而不是 Expression?
【问题讨论】:
标签: c# .net-4.0 expression-trees