如何限制从DLL访问的内容?

Gud*_*ain 2 c# dll scope

我有一个代码如下的DLL:

public class MyInterface
{
    private Class1 class1;

    public void DoSomething()
    {
        class1.DoSomething();
    }
}

public class Class1
{
    public void DoSomething()
    {
        //Do something...
    }
}
Run Code Online (Sandbox Code Playgroud)

其他开发人员将使用我编写的这个DLL.他们只是想使用MyInterface而不应该知道Class1.Class1直接使用可能会产生意外行为并引入错误.

有没有办法只显示使用它的开发人员内部的DLL的子集?

Pio*_*ski 7

这就是访问修饰符的用途.上课internal:

internal class Class1
{
}
Run Code Online (Sandbox Code Playgroud)

它只在装配体内可见.检查MSDN以阅读有关访问修饰符的更多信息:http://msdn.microsoft.com/en-us/library/wxh6fsc7.aspx

  • 实际上不是,可以通过使用`InternalsVisibleToAttribute`从其他程序集中看到`internal`.它专为自动化测试而设计.请阅读:http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute%28v=vs.110%29.aspx (3认同)