好的,找到了(感谢@DavidG的链接)。关键是写出
System.Linq.Expressions.Expression
首先是C#中的树。之后,转换到Powershell很容易:
因此,在C#中:
Class1.Method1(() => "Hello World");
var exp = Expression.Constant("Hello World", typeof(string));
var lamb = Expression.Lambda<Func<string>>(exp);
Class1.Method1(lamb);
$exp = [System.Linq.Expressions.Expression]::Constant("Hello World", [string]);
$lamb = [System.Linq.Expressions.Expression]::Lambda([Func[string]], $exp);
[ClassLibrary1.Class1]::Method1($lamb);