2008-12-05 70 views
3

我期待通過使用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> 

...就從哪裏開始的指針將是有益的。

親切的問候,

回答

5
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])); 
     } 

     /* ... */ 

    } 
} 
0

我會先看看DLR,它具有發佈的表達式樹機制。