我正在为一个程序编写一个插件,我想将我的代码放入 DLL 中,这样我就可以自由地共享该插件,而无需暴露(泄露)我的代码。
这是我可以访问的基本结构:
using System;
public class Plugin
{
public void Initialize()
{
//do stuff here
doWork();
}
}
然后我只需引用我的代码所在的 .cs 文件,程序就会“吃掉”这个插件。现在,我在那里放置了几个逻辑,主要由不直接与“Initialize()”绑定的函数组成,仅在启动整个系统的 doWork() 函数上。
现在,我想将所有代码放入 DLL 中,然后从 Initialize()、myDll.doWork() (或类似的东西)内部调用。
PS:这个 dll 将是一个已编译的 C# 库(可以称为动态程序集导入吗?它不会真正是动态的,因为无论如何它都会在执行前进行编译,对吗?)
PS2:这样我也可以轻松添加自定义资源,例如表单、图像等,对吗?
PS3:有没有免费的工具来保护此类DLL中的代码? (即防止被轻易地重新设计)
预先感谢 =)
找到了我正在寻找的东西,这里是:
using System.Reflection;
using System.IO;
try
{
Assembly a = null;
a = Assembly.LoadFrom(Application.StartupPath startupPath + "MyAssembly.dll");
Type classType = a.GetType("MyNamespace.MyClass");
object obj = Activator.CreateInstance(classType);
MethodInfo mi = classType.GetMethod("MyMethod");
mi.Invoke(obj, null);
}
catch (Exception e)
{
AddLog(e.Message);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)