2009-05-26 16 views
2

私はちょっとDLRで遊んでいましたし、メソッドを呼び出す際にちょっと固執しています。例えば、私がスタックに何かをプッシュする式を作りたいとします私は_stackまたはアイテムのうちの表現を取得する方法を本当にわからないのでメソッドを呼び出すためにLINQ式を作成するにはどうすればよいですか?

class StackInfo{ 

    protected Stack<SomeClass> _stack; 

    public Expression Push(SomeClass item) 
    { 
     MethodInfo mi = _stack.GetType().GetMethod("Push"); 
     return Expression.Call(_stack, mi, item); 
    } 
} 

私は立ち往生しています。誰かが私を正しい方向に押し込んでくれますか? ....

class StackInfo 
{ 
    protected Stack<SomeClass> _stack; 

    public Expression Push(SomeClass item) 
    { 
     MethodInfo mi = _stack.GetType().GetMethod("Push"); 

     return Expression.Call(Expression.Constant(_stack), mi, Expression.Constant(item)); 
    } 
} 

答えて

3

Expression.Constantファクトリメソッドを使用します。 :-)
+0

HRMあなたはそれそのように置くとき、それはとても簡単なようだ: –

+0

時にはもう一組の目がかかることがあります。 –

関連する問題