Programming Microsoft Linq (ISBN 13: 978-0-7356-2400-9 または ISBN 10: 0-7356-2400-3) の第 11 章 (Inside Expression Trees) と第 12 章 (Extending Linq) は、私にとってかけがえのないものでした。Jons の本は読んだことがありませんが、彼は質の高い人であり、物事をよく説明しているので、彼の報道も良いと思います。
もう 1 つの優れたリソースは、Bart De Smet のブログです。
また、MSDN にも注目してください。Simple Linq to Databaseを構築するためのサンプル コード(Pedram Rezaei による) は、約 40 ページの Doco で説明されています。
Expression Tree の非常に便利なリソースは、Expression Tree Visualiserデバッグ ツールです。
また、式ツリー ビジターについてできる限り多くのことを学ぶ必要があります。かなり優れた基本クラスの実装がここにあります。
これは、Visitor クラスから派生してデバッグを行うためのサンプル コードです (これは、私が言及した本のサンプル コードに基づいています)。レベル。
internal class DebugDisplayTree : ExpressionVisitor
{
private int indentLevel = 0;
protected override System.Linq.Expressions.Expression Visit(Expression exp)
{
if (exp != null)
{
Trace.WriteLine(string.Format("{0} : {1} ", exp.NodeType, exp.GetType().ToString()).PrependIndent(indentLevel));
}
indentLevel++;
Expression result = base.Visit(exp);
indentLevel--;
return result;
}
...