Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 包括始终将代码更改为活动程序_C#_Include - Fatal编程技术网

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

C# 包括始终将代码更改为活动程序,c#,include,C#,Include,以以下函数为例: void Changing(string var1, string var2, string var3) { } 我有用.txt文件编写的代码,我希望它能够动态加载到该函数中。每次调用函数时,代码可能会有所不同。我怎么能这样做 代码位于磁盘上的文本文件中 应在不停止程序执行的情况下动态加载代码 代码应该和从一开始就加载的代码没有区别,应该假装它总是在那里 要执行的文件的位置包含在var1中 你不能100%地假装它从一开始就在那里;你必须解决这个问题 如果代码位于外部文本文件中

以以下函数为例:

void Changing(string var1, string var2, string var3)
{
}
我有用
.txt
文件编写的代码,我希望它能够动态加载到该函数中。每次调用函数时,代码可能会有所不同。我怎么能这样做

  • 代码位于磁盘上的文本文件中
  • 应在不停止程序执行的情况下动态加载代码
  • 代码应该和从一开始就加载的代码没有区别,应该假装它总是在那里
  • 要执行的文件的位置包含在
    var1

  • 你不能100%地假装它从一开始就在那里;你必须解决这个问题

    如果代码位于外部文本文件中,则有多个选项:

    • 使用
      CSharpCodeProvider
      在运行时编译代码;您需要添加额外的fluff以使其成为定义良好的类(可能实现了一个公共接口);然后使用反射创建该类型的实例;是的,小心你不能卸货,等等
    • 等到.NET5.0,并希望编译器即服务(compiler-as-a-service)保持不变
    • 使用Mono,其中编译器即服务
    • 通过IronPython以python脚本的形式运行外部文件(例如)(请注意,这会更改脚本语言)

    我先看最后一个选项(IronPython)。。。似乎适合这份工作。

    你不能100%地假装它从一开始就在那里;你必须解决这个问题

    如果代码位于外部文本文件中,则有多个选项:

    • 使用
      CSharpCodeProvider
      在运行时编译代码;您需要添加额外的fluff以使其成为定义良好的类(可能实现了一个公共接口);然后使用反射创建该类型的实例;是的,小心你不能卸货,等等
    • 等到.NET5.0,并希望编译器即服务(compiler-as-a-service)保持不变
    • 使用Mono,其中编译器即服务
    • 通过IronPython以python脚本的形式运行外部文件(例如)(请注意,这会更改脚本语言)

    我先看最后一个选项(IronPython)。。。似乎是为此作业而设计的。

    您可以像或尝试使用脚本语言。我还没有实现这些,但已经看到类似的东西在java中工作。

    您可以尝试使用类似的脚本语言。我还没有实现这些,但已经看到类似的东西在java中发挥作用。

    这闻起来像是家庭作业,或者说是一种复杂的方式创建了注入漏洞。这闻起来像是家庭作业,或者是一种复杂的方式创建了注入漏洞。