nameof в атрибуте создает пустую строку
Прямо сейчас я разрабатываю генератор исходного кода INotifyPropertyChanged (для изучения генераторов) и наткнулся на странную ошибку (?). Когда атрибут использует
nameof
для ссылки на сгенерированное свойство, соответствующее
AttributeData.ConstructorArguments
вместо имени свойства содержит пустую строку.
[AutoNotify]
partial class Sample
{
string _someProp;
[NotifyDependsOn(nameof(SomeProp), nameof(_someProp))]
public string Dependent => _str;
public string Foo() => SomeProp; // added by generator
}
SomeProp
генерируется свойство, которое в данный момент не добавлено в исходный код. Все работает, если член определен пользователем. Этот код компилируется.
- Это ошибка компилятора или это по дизайну ?
- Как лучше всего обойти это? Спуститься от семантической модели к синтаксису или заняться чем-то другим?