Я нашел решение с внутренним классом и методом:
Некоторые классы в My dll:
[assembly: InternalsVisibleTo("FriendAssembly")]
namespace MiLibrary
{
internal class Class1
{
internal static string GetName()
{
return "My Name";
}
}
}
Другой проект в каком-то классе:
namespace MyApp
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
txbText.Text = MiLibrary.Class1.GetName();
}
}
}
Только «FriendAssembly» имеет доступ к Class1 . «Другой проект» должен иметь имя сборки как «FriendAssembly» (Проект меню -> Свойства «Другой проект» -> Приложение -> Имя сборки)
InternalsVisibleToAttribute Class
Смежные вопросы в Stackoverflow:
Защита C# DLL от третьей стороны
Как защитить дллс?