具有内部类和私有道具的访问修饰符警告

时间:2013-11-30 13:34:27

标签: c# code-analysis access-modifiers

[Export(typeof(IExample))]
internal class Example : IExample
{
    private static IEnumerable<string> Process()
    {
        // do stuff and yeild return
    }

    private HashSet<string> myHash = new HashSet<string>(Process());

    public someType MemberFunction(typeA _a, typeB _b, typeC _c)
    {
        if(!myHash.Contains(/* blah blah */))

         // do more stuff and return
    }
}

注意:MemberFunction()在项目的其余部分中有 20+个参考

然而,我得到CA1811

  

CA1811避免未调用的私有代码'Example.Process()'似乎没有上游公共或受保护的呼叫者。

有没有办法绕过它,而不是抑制这个警告?

1 个答案:

答案 0 :(得分:3)

由于某些原因,您的课程似乎是internal,但您Export了。

您的编译器只能看到它是内部的,并且您的函数不会从您的类所在的程序集中调用。它无法看到您的导出/导入的黑魔法背后。

如果你Export某事,它应该是公开的。这就是重点。