C # лучший способ поделиться проектом, но выставить только необходимые методы - PullRequest
0 голосов
/ 19 сентября 2018

У меня есть Visual Studio решение с двумя Web API проектами и несколькими общими или общими проектами.

  • WebAPI_1 (большой API)
  • WebAPI_2 (очень маленький API)
  • Репозиторий данных
    • SecurityRepository.cs
  • Интерфейс данных
    • ISecurityRepository.cs
  • Services
    • SecurityService.cs
  • Утилита

WebAPI_2 В проекте будут использоваться некоторые методы из SecurityService.cs, но только 5 из почти50.

SecurityService.cs внутри вызывает методы, использующие Dependency Injection из ISecurityRepository

Поскольку при ссылке на проект будет представлена ​​полная DLL, существует ли способ, которым WebAPI_2 видит только 5методы, которые собираются использовать, но нет способа увидеть другие 45 методов?

Кроме того, поскольку используется Dependency Injection, я подумал, может быть, при создании другого интерфейса только с теми методами, к которым WebAPI_2 SecurityService собираетсяиспользовать.Но опять же проблема в том, что на весь проект Data.Interface будут ссылаться.

Я не хочу, чтобы из-за этого было по два проекта в каждом.

Обновление : Не знаю, можно ли использовать InternalsVisibleTo в этом сценарии, но на уровне метода.

Цените любые советы или рекомендации.

1 Ответ

0 голосов
/ 19 сентября 2018

Если у вас есть исходный код для каждого из API, сгруппируйте их в одну сборку, пометив все как внутреннее, и создайте общедоступный API, чтобы предоставить его внешним пользователям.

Я рекомендую использовать Dot NetОбфускационный инструмент.Источники C # слишком легко перепроектировать.Если кража является проблемой, запрограммируйте на C или C ++ и предоставьте управляемую оболочку для C #.Кроме того, используйте аппаратное устройство шифрования для запуска / дешифрования программы на лету.

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