gpt4 book ai didi

c# - 装饰主要方法的属性构造函数不会在发布版本中被调用

转载 作者:行者123 更新时间:2023-11-30 17:20:19 25 4
gpt4 key购买 nike

有谁知道为什么修饰 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com