首页 > 解决方案 > 限制在 Visual Studio 或其他开发者项目中加载网络框架 DLL

问题描述

我在 Visual Studio 中有一个网络框架 DLL 项目,该 DLL 在发布模式下编译并用于另一个项目,我如何限制他人加载或使用 DLL,而不是窃取我的 DLL 并在他/她的项目中使用?

标签: visual-studiodll.net-framework-version

解决方案


我找到了内部类和方法的解决方案:

我的 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 类

Stackoverflow 中的相关问题:

保护 C# DLL 免受第三方攻击

如何保护dll?


推荐阅读