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генерируется свойство, которое в данный момент не добавлено в исходный код. Все работает, если член определен пользователем. Этот код компилируется.

  1. Это ошибка компилятора или это по дизайну ?
  2. Как лучше всего обойти это? Спуститься от семантической модели к синтаксису или заняться чем-то другим?

0 ответов

Другие вопросы по тегам