0

现在我正在开发 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. 解决此问题的最佳方法是什么?从语义模型到语法还是做其他事情?
4

0 回答 0