Построение вызова метода

пытаясь следовать этому руководству:https://github.com/Readify/Neo4jClient/wiki/cypher-examples#get-all-users-by-label Мне нужно создать лямбда-выражение, чтобы предоставить егоReturn метод. В C # это выглядит так:

.Return(n => n.As<Project>())

и в Powershell я пошел по этому пути (согласно предложению @ PetSerAl:Возврат перегрузки не удается):

$exp = [System.Linq.Expressions.Expression]
$param = $exp::Parameter([Neo4jClient.Cyper.ICypherResultItem], "n")
$body = $exp::TypeAs($p, (new-object Project).GetType())
$lambda = $exp::Lambda([Func[Project]], $body, $p)

такой, что параметр, передаваемый лямбда-выражению, набирается так, чтобы получить то, что передаст выражение Neo4j, а тело метода преобразует его вProject (локально определенный класс). Теперь я могу передать это моему методу:

$something.Return($lambda)

однако я получаю эту ошибку

Исключение, вызывающее «Return» с аргументом (ами) «1»: «Выражение должно быть построено как инициализатор объекта (например: n => new MyResultType {Foo = n.Bar}), инициализатор анонимного типа (например, : n => new {Foo = n.Bar}), вызов метода (например: n => n.Count ()) или метод доступа к члену (например: n => n.As (). Bar) . Вы не можете предоставить блоки кода (например: n => {var a = n + 1; вернуть a;}) или использовать конструкторы с аргументами (например: n => new Foo (n)). Если вы в F # также поддерживаются кортежи. Имя параметра: выражение "В строке: 1 символ: 1 + $ neo.Cypher.Match (" n "). Return ($ return) + ~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId: ArgumentException

что дает понять, что я неправильно сформулировал тело лямбда-выражения. кто-нибудь может подсказать, как это должно быть вместо этого?

Ответы на вопрос(1)

Ваш ответ на вопрос