Как использовать SyntaxFactory для Roslyn - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь сгенерировать код с использованием SyntaxFactory, но застрял при преобразовании одной области. Пожалуйста, посмотрите код ниже. Я оставил комментарий, где нахожу это трудным и использовал манипуляции со строками.

Идея в том, что будет две переменные removeExpression и getExpression, которые имеют тип ExpressionSyntax и, наконец, оба будут использоваться в качестве тела анонимной функции.

ExpressionSyntax removeExpression = SyntaxGenerator.MethodInvokeExpression(
  valueExpression,
  "RemoveAt",
  BinaryExpression(
   SyntaxKind.SubtractExpression,
   SyntaxGenerator.PropertyAccessExpression(valueExpression, nameof(Enumerable.Count)),
   atExpression
  )
 );

ExpressionSyntax getExpression = SyntaxGenerator.MethodInvokeExpression(valueExpression, nameof(Enumerable.First));

// Помогите мне преобразовать строку ниже, используя SyntaxFactory.

IdentifierName("((Func<dynamic>)(() => { var res = " + getExpression.ToString() + ";" + removeExpression.ToString() + "; return res" + " ; }))(); ");

...