Создать .dll из библиотеки c# и вызывать только определенные функции c - PullRequest
0 голосов
/ 15 апреля 2020

Я написал c# -консольный проект, который содержит много классов и функций. Я хочу построить DLL из этого проекта, но сделать только функции из трех классов, которые могут быть вызваны. Эти классы имеют зависимости от других классов, поэтому эти классы должны быть скомпилированы, но их функции не должны вызываться пользователем dll.

Я знаю, как создать простую DLL в Visual Studio 2019, которая включает в себя все функции из проекта.

Спасибо за помощь!

Ответы [ 2 ]

2 голосов
/ 15 апреля 2020

Необходимо пометить нужные методы и класс как public, чтобы они были видны в других проектах, ссылающихся на вашу dll / сборку (другие методы должны использовать другие модификаторы доступа, чтобы быть скрытыми).
С Документация Microsoft:

  • publi c: доступ к типу или элементу возможен из любого другого кода в той же сборке или другого сборка, которая ссылается на него .
  • private : доступ к типу или члену возможен только с помощью кода в том же классе или структуре.
  • protected : доступ к типу или члену возможен только с помощью кода в том же классе или в классе, производном от этого класса.
  • internal : Доступ к типу или элементу может быть получен из любого кода в той же сборке, но не из другой сборки.
  • внутренняя защищенная : доступ к типу или элементу может получить любой код в сборке, в которой он объявлен, или из производного класса в другой сборке.
  • частная защита : доступ к типу или члену возможен только в пределах объявленной сборки, по коду из того же класса или по типу, производному от этого класса.
1 голос
/ 15 апреля 2020

Вы должны указать правильный метод доступа для каждого метода. Например:

  • publi c void Do () означает, что он доступен из других проектов (для всех)
  • внутренний void Do () означает, что эта функция доступна только внутри проекта
  • private void Do () означает, что функция вызывается только внутри одного класса

Итак, вы должны выбрать один из них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...