Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.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# 如何在.NET Core中检测运行时代码生成?_C#_.net Core_Reflection.emit - Fatal编程技术网

C# 如何在.NET Core中检测运行时代码生成?

C# 如何在.NET Core中检测运行时代码生成?,c#,.net-core,reflection.emit,C#,.net Core,Reflection.emit,我有一个应用程序正在不支持运行时代码生成的平台上运行(即System.Reflection.Emit)。任何试图生成代码的方法都会在运行时抛出NotImplementedException 为这个平台构建和部署是非常耗时的,所以开发和测试是在标准的.NET核心环境中完成的,它允许生成运行时代码。如果我不小心碰到了一条导致第三方库生成代码的路径,我将在新代码构建和部署之后很久才会发现 我有没有办法禁用应用程序中的代码生成,以便在本地计算机上运行时在开发过程中找到这些代码路径?它似乎应该得到支持,如

我有一个应用程序正在不支持运行时代码生成的平台上运行(即
System.Reflection.Emit
)。任何试图生成代码的方法都会在运行时抛出
NotImplementedException

为这个平台构建和部署是非常耗时的,所以开发和测试是在标准的.NET核心环境中完成的,它允许生成运行时代码。如果我不小心碰到了一条导致第三方库生成代码的路径,我将在新代码构建和部署之后很久才会发现


我有没有办法禁用应用程序中的代码生成,以便在本地计算机上运行时在开发过程中找到这些代码路径?它似乎应该得到支持,如果不是出于安全考虑的话。

我正在考虑以下问题,获取
AppDomain.CurrentDomain.GetAssemblies()
assemblies并搜索
System.Reflection.Emit
或生成代码的其他程序集,如果存在,则检查失败我认为,但它不起作用;允许程序集(和确实)包含对
Emit
的调用。我必须确保我的代码避免遇到代码路径。您能否将一些代码(日志、异常等)编入第三方库,并仅在开发过程中使用这些代码,可能会有帮助。有没有办法把构建“非常耗时”的平台作为精简版放在一个容器中?最终,测试某些东西是否有效的唯一令人信服的方法是拥有一个尽可能具有代表性的测试环境。一个选项是构建一个自包含的.NET核心应用程序,然后将提供的
System.Reflection.Emit
程序集替换为引用程序集(不包含任何实现),作为构建步骤的一部分。我正在考虑以下内容,get
AppDomain.CurrentDomain.GetAssemblys()
程序集并搜索
系统.反射.Emit
或具有代码生成功能的其他程序集,如果存在,则检查是否失败。我认为这样做不起作用;允许程序集(和确实)包含对
Emit
的调用。我必须确保我的代码避免遇到代码路径。您能否将一些代码(日志、异常等)编入第三方库,并仅在开发过程中使用这些代码,可能会有帮助。有没有办法把构建“非常耗时”的平台作为精简版放在一个容器中?最终,测试某些东西是否有效的唯一令人信服的方法是拥有一个尽可能具有代表性的测试环境。一个选项是构建一个自包含的.NET核心应用程序,然后将提供的
System.Reflection.Emit
程序集替换为引用程序集(不包含实现),作为构建步骤的一部分。