У меня есть конструктор с необязательными параметрами. Я хотел бы иметь выражение для вызова этого конструктора без предоставления необязательных аргументов (я имею в виду, что объект может быть построен со значениями параметров по умолчанию).
Я прочитал здесь Дерево выражения не может содержать вызов или вызов, использующий необязательные аргументы, что это невозможно.
я имею в виду
var ctorInfo = getIt;
var f = Expression.Lambda<Func<T>>(Expression.New(ctorInfo)).Compile();
терпит неудачу с System.TypeInitializationException
.
Хорошо, я передам значения по умолчанию. Но как мне получить значения параметров по умолчанию?
ctorInfo.GetParameters().Select(??
Мотив: цель обучения, а не практическое применение.
Редактировать: удален тег expression-tree, так как он не используется в контексте построения выражений, а также действителен в целом.