CodeDOM: именованные аргументы - PullRequest
0 голосов
/ 19 декабря 2018

Я пытаюсь сгенерировать код для вызова конструктора.Что-то вроде

var obj = new Foo("bar", "baz", thirdParam: 5);

Часть моего кода:

var arg1 = new CodePrimitiveExpression("bar");
var arg2 = new CodePrimitiveExpression("baz");
var arg3 = new CodePrimitiveExpression(5);

var objectCreate = new CodeObjectCreateExpression(typeof(Foo), arg1, arg2, arg3);

var decl = new CodeVariableDeclarationStatement("var", "obj", objectCreate);

Это то, что генерируется:

var obj = new Foo("bar", "baz", 5);

Есть ли какой-либо способ (кроме использования CodeSnippetExpression)создать именованный аргумент в CodeDOM?

1 Ответ

0 голосов
/ 20 декабря 2018

Нет, это невозможно сделать с помощью CodeDOM (без использования фрагмента кода, как вы предлагаете).Именованные аргументы синтаксический сахар обрабатываются компилятором C #.

Используя CodeDOM, вам нужно будет предоставить значение для каждого параметра, даже если оно равно null.

...