【问题标题】:Create .dll from c# library and only make specific functions callable从 c# 库创建 .dll 并仅使特定函数可调用
【发布时间】:2020-07-28 07:51:45
【问题描述】:

我编写了一个包含许多类和函数的 c#-console 项目。我想从该项目构建一个 DLL,但只使大约 3 个类的函数可调用。这些类与其他类有依赖关系,因此必须编译这些附属类,但它们的函数不应被 dll 用户调用。

我知道如何在 Visual Studio 2019 中创建一个简单的 DLL,其中包含项目中的所有函数。

感谢您的帮助!

【问题讨论】:

    标签: c# .net visual-studio dll


    【解决方案1】:

    您需要将所需的方法和类标记为public,以便在引用您的 dll/程序集的其他项目中可见(其他方法必须使用其他访问修饰符才能隐藏)。
    来自Microsoft's documentation:

    • public:类型或成员可由同一程序集或引用它的其他程序集中的任何其他代码访问。
    • private:类型或成员只能被同一类或结构中的代码访问。
    • 受保护:类型或成员只能由同一类中的代码或从该类派生的类中访问。
    • internal:同一程序集中的任何代码都可以访问类型或成员,但不能从另一个程序集中访问。
    • 受保护 internal:类型或成员可以被任何代码访问 声明它的程序集,或在其中的派生类中 另一个大会。
    • private protected:类型或成员只能在其声明程序集中,通过同一类中的代码或以下类型中的代码访问 派生自该类。

    【讨论】:

      【解决方案2】:

      您必须在每个方法上指定正确的访问器。 例如:

      • public void Do() 表示它可以从其他项目访问到(对所有人而言)
      • internal void Do() 表示该函数只能在项目内部访问
      • private void Do() 表示该函数只能在同一个类中调用

      所以你必须选择其中之一。

      猜你喜欢
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多