如何通过在C#中解析Xml来创建表达式树?
问题描述:
我期待通过使用C#解析xml来创建表达式树。 XML配置将是这样的:如何通过在C#中解析Xml来创建表达式树?
<Expression>
<If>
<Condition>
<GreaterThan>
<X>
<Y>
</GreaterThan>
</Condition>
<Expression />
<If>
<Else>
<Expression />
</Else>
<Expression>
或另一个例子......
<Expression>
<Add>
<X>
<Expression>
<Y>
<Z>
</Expression>
</Add>
</Expression>
...就从哪里开始的指针将是有益的。
亲切的问候,
答
using System.Linq.Expressions; //in System.Core.dll
Expression BuildExpr(XmlNode xmlNode)
{ switch(xmlNode.Name)
{ case "Add":
{ return Expression.Add(BuildExpr(xmlNode.ChildNodes[0])
,BuildExpr(xmlNode.ChilNodes[1]));
}
/* ... */
}
}
答
我会先看看DLR,它具有发布的表达式树机制。