有谁知道为什么修饰 main 方法的属性的构造函数在调试版本中被调用,但在发布版本中却不被调用?
我如何确保在发布版本中也调用构造函数?当然无需手动调用。
非常感谢对此主题的任何见解。
最佳答案
我可以重现这个(在调试和发布中),当通过 IDE 执行时并启用“调试”=>“启用 Visual Studio 托管进程”选项,通过以下方式。在命令行中它将打印“hello”,而通过 IDE 它将打印“world”。看起来 IDE 正在对属性进行一些不同的反射。
这是不是预期的行为,您不应依赖此行为。如果您希望执行某些特定代码:显式调用所需代码。要获得可预测的行为,请禁用“调试”=>“启用 Visual Studio 托管进程”选项。
using System;
public class MyTestAttribute : Attribute {
public MyTestAttribute() {
Program.text = "world";
}
}
class Program {
public static string text = "hello";
[MyTest]
static void Main() {
Console.WriteLine(text);
Console.ReadKey();
}
}
关于c# - 装饰主要方法的属性构造函数不会在发布版本中被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4244691/