简单说一下,我们程序已经生成出来的,但我想通过添加本地的代码实现改变已有的程序的功能(俗称脚本)。下面是我用一个c#桌面应用程序作为示例。
需要引用Microsoft.CSharp和System.CodeDom.Compiler命名空间。
string codeFilePath = "C:\\Users\\Administrator\\Desktop\\ExternalCode.cs";//外部代码文件
CSharpCodeProvider provider = new CSharpCodeProvider();
CompilerParameters parameters = new CompilerParameters();
parameters.GenerateInMemory = true;
parameters.ReferencedAssemblies.Add("D:\\LightApplicationEngine\\bin\\LightApplicationEngine.dll");//程序集

加入需要的程序库就可以了不需要像我一样添加无用的库

点击这里,右边会出现路径可以双击路径复制
CompilerResults results = provider.CompileAssemblyFromFile(parameters, codeFilePath);
if (results.Errors.Count == 0)
{
// 获取编译后的程序集
Assembly assembly = results.CompiledAssembly;
// 查找并调用其中的方法
Type type = assembly.GetType("Class1");//类
if (type != null)
{
MethodInfo method = type.GetMethod("ExternalFunction");//函数名称
if (method != null)
{
//method.Invoke(null,null);//这条代码只能执行动态函数,静态函数需要创建实例才能调用
object instance = Activator.CreateInstance(type);
method.Invoke(instance, null);
}
else
&nbs

最低0.47元/天 解锁文章
577

被折叠的 条评论
为什么被折叠?



