我正在尝试创建一个单元测试,该单元测试将仅对不抑制相应消息的类型失败。但是,我无法在单元测试中访问任何类型的SuppressMessage属性。是否可以在运行时访问SuppressMessage属性?我已经包括了单元测试的简化版本。

[System.Diagnostics.CodeAnalysis.SuppressMessage("Foo", "Bar")]
public interface IMyInterface { }

public void UnitTest()
{
    var getCustomAttributes = typeof(IMyInterface).GetCustomAttributes();   //Returns an empty array
    //Skip check if message should be suppressed
}

最佳答案

使用条件符号CODE_ANALYSIS构建您的程序集(定义了IMyInterface的程序集)

[Conditional("CODE_ANALYSIS")]
[AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
public sealed class SuppressMessageAttribute : Attribute {

关于c# - 在运行时无法访问SuppressMessage属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20199119/

10-13 03:28