C# Resharper代码注释不';引用已编译的dll时无法工作

C# Resharper代码注释不';引用已编译的dll时无法工作,c#,resharper,C#,Resharper,假设我有下面的课程 public class MyClass { [NotifyPropertyChangedInvocator("propertyName")] public void RespondToProperty(string propertyName) { //Some code here... } } 当解决方案中的另一个项目使用此类时,注释将起作用。Resharper会自动完成调用方类属性(正如它应该做的那样)。 但是当我引用编译

假设我有下面的课程

public class MyClass
{
    [NotifyPropertyChangedInvocator("propertyName")]
    public void RespondToProperty(string propertyName)
    {
        //Some code here...
    }
}
当解决方案中的另一个项目使用此类时,注释将起作用。Resharper会自动完成调用方类属性(正如它应该做的那样)。 但是当我引用编译后的dll时,resharper并没有像它应该的那样自动完成属性名

我还尝试定义以下外部注释,但没有成功:

<assembly name=”MyAssembly">
    <member name=”M:MyAssembly.MyClass.RespondToProperty(System.String,System.String)”>
        <attribute ctor=”M:JetBrains.Annotations.NotifyPropertyChangedInvocatorAttribute.#ctor” />
    </member>
</assembly>

如果您使用的是最新版本的注释,例如从ReSharper 9设置复制的默认源实现,或引用,则默认情况下,它们不会编译到生成的dll中

通过应用
[条件(“JETBRAINS\u注解”)]
来定义属性。这意味着,除非定义了
JETBRAINS\u ANNOTATIONS
符号,否则不会编译属性,但ReSharper仍然可以使用属性进行分析。如果定义
JETBRAINS\u ANNOTATIONS
,则属性将编译到结果dll中,并且当结果dll用作引用时,ReSharper现在将能够使用这些属性


需要注意的一点是,如果您通过nuget软件包引用dll,并且定义了
JETBRAINS\u ANNOTATIONS
,那么生成的dll现在将直接引用JETBRAINS.ANNOTATIONS.dll,并且您需要随生成的dll一起提供JETBRAINS.ANNOTATIONS.dll。如果您通过源代码包含注释,它们将编译到结果dll中,并且您没有任何额外的二进制引用。

如果您使用的是最新版本的注释,例如从ReSharper 9设置复制的默认源代码实现,或引用,则它们不会编译到结果dll中,默认情况下

通过应用
[条件(“JETBRAINS\u注解”)]
来定义属性。这意味着,除非定义了
JETBRAINS\u ANNOTATIONS
符号,否则不会编译属性,但ReSharper仍然可以使用属性进行分析。如果定义
JETBRAINS\u ANNOTATIONS
,则属性将编译到结果dll中,并且当结果dll用作引用时,ReSharper现在将能够使用这些属性


需要注意的一点是,如果您通过nuget软件包引用dll,并且定义了
JETBRAINS\u ANNOTATIONS
,那么生成的dll现在将直接引用JETBRAINS.ANNOTATIONS.dll,并且您需要随生成的dll一起提供JETBRAINS.ANNOTATIONS.dll。如果通过源代码包含注释,它们将被编译到生成的dll中,并且您没有任何额外的二进制引用。

虽然这并不能回答您的问题,但如果您使用的是.NET的较新版本,则不必将调用方名称作为字符串传递。这将是一个引入错误而没有任何收益的机会。看看如何在不将propertyname作为字符串传递的情况下执行此操作。我知道这一点。另外,我不希望它表现得像更改通知。这个属性符合我的需要,因为我想传递属性名,但实际上它永远不会是“当前”属性的名称。虽然这并不能回答您的问题,但如果您使用的是.NET的较新版本,则不必将调用方名称作为字符串传递。这将是一个引入错误而没有任何收益的机会。看看如何在不将propertyname作为字符串传递的情况下执行此操作。我知道这一点。另外,我不希望它表现得像更改通知。这个属性适合我的需要,因为我想传递属性名,但实际上它永远不会是“当前”属性的名称