Я получаю следующее исключение:
System.ArgumentException: «Поддерживаются только выражения констант и одномерных массивов»
При попытке подделать какой-то абстрактный объект с дополнительным атрибутом, который принимает параметры в конструкторе.
var foo = A.Fake<SelfComplementaryCustomizableTupleConsumer>(
opt => opt.WithAttributes(
() => new RequiredVariableNameAttribute(requiredVariableName,requiredVariableType)
)
);
Стоит упомянуть, что если я вызываю конструктор без аргументов, все в порядке. Что еще более интересно для меня, так это то, что если я подставлю переменные с константами, то проблема не появится.
Полный код:
string requiredVariableName = "abc";
Type requiredVariableType = typeof(string);
var foo = A.Fake<SelfComplementaryCustomizableTupleConsumer>(
opt => opt.WithAttributes(
() => new RequiredVariableNameAttribute(requiredVariableName,requiredVariableType)
)
);
var requiredVariables = foo.GetRequiredVariables();
Assert.IsTrue(requiredVariables.TryGetValue(requiredVariableName, out Type tmp));