Construyendo una llamada al método

al tratar de seguir esta guía:https://github.com/Readify/Neo4jClient/wiki/cypher-examples#get-all-users-by-label Necesito crear una expresión lambda para proporcionarla alReturn método. En C # se ve así:

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

y en Powershell lo he hecho de esta manera (según la sugerencia de @ PetSerAl:La sobrecarga de retorno falla):

$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)

de modo que el parámetro pasado a la expresión lambda se escribe para recibir lo que pasará la expresión Neo4j y el cuerpo del método la convierte en unProject (una clase definida localmente). ahora puedo pasarlo a mi método:

$something.Return($lambda)

sin embargo, me sale este error

Excepción que llama a "Retorno" con "1" argumento (s): "La expresión debe construirse como un inicializador de objeto (por ejemplo: n => new MyResultType {Foo = n.Bar}), un inicializador de tipo anónimo (por ejemplo : n => new {Foo = n.Bar}), una llamada al método (por ejemplo: n => n.Count ()), o un miembro miembro (por ejemplo: n => n.As (). Bar) No puede suministrar bloques de código (por ejemplo: n => {var a = n + 1; return a;}) o usar constructores con argumentos (por ejemplo: n => new Foo (n)). en F #, también se admiten tuplas. Nombre del parámetro: expresión "En línea: 1 char: 1 + $ neo.Cypher.Match (" n "). Retorno ($ return) + ~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId: ArgumentException

lo que deja en claro que no formulé el cuerpo de la expresión lambda correctamente. ¿Alguien puede sugerir cómo debería ser en su lugar?

Respuestas a la pregunta(1)

Su respuesta a la pregunta