当前位置:  开发笔记 > 编程语言 > 正文

包括始终将代码更改为活动程序

如何解决《包括始终将代码更改为活动程序》经验,为你挑选了1个好方法。

以下面的函数为例:

void Changing(string var1, string var2, string var3)
{
}

我有代码写在.txt文件中,我希望它动态加载到该函数中.每次调用函数时,代码可能会有所不同.我怎么能这样做?

    代码位于磁盘上的文本文件中

    应该动态加载代码而不停止执行程序

    代码应该与从头开始加载的代码无法区分,应该假装它总是在那里.

    要执行的文件的位置包含在var1.

Marc Gravell.. 5

你不能100%从头开始假装它在那里; 你将不得不解决它.

如果代码在外部文本文件中,您有许多选项:

用于CSharpCodeProvider在运行时编译代码; 你需要添加额外的绒毛才能使它成为一个定义明确的类(可能是实现了一个通用接口); 然后使用反射创建该类型的实例; 是的 - 并且要注意你不能卸载等

等到.NET 5.0并希望编译器即服务保持不变

使用Mono,其中编译器即服务已经存在

通过IronPython将外部文件作为(例如)python脚本运行(请注意,这会更改脚本语言)

我先看看最后一个选项(IronPython)......似乎是为这份工作做的.



1> Marc Gravell..:

你不能100%从头开始假装它在那里; 你将不得不解决它.

如果代码在外部文本文件中,您有许多选项:

用于CSharpCodeProvider在运行时编译代码; 你需要添加额外的绒毛才能使它成为一个定义明确的类(可能是实现了一个通用接口); 然后使用反射创建该类型的实例; 是的 - 并且要注意你不能卸载等

等到.NET 5.0并希望编译器即服务保持不变

使用Mono,其中编译器即服务已经存在

通过IronPython将外部文件作为(例如)python脚本运行(请注意,这会更改脚本语言)

我先看看最后一个选项(IronPython)......似乎是为这份工作做的.

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有