这应该是路途强制静态构造函数多次运行的原因:
typeof(Foo).TypeInitializer.Invoke(null, null);这对我不起作用。请参见此多管乐器,该示例具有以下内容:
using System;
public static class Foo
{
static Foo()
{
Console.WriteLine("inside cctor");
}
public static void Run() { }
}
public class Program
{
public static void Main()
{
Foo.Run(); // runs cctor
typeof(Foo).TypeInitializer.Invoke(null, null); // does not run cctor
typeof(Foo).TypeInitializer.Invoke(null, null); // does not run cctor
typeof(Foo).TypeInitializer.Invoke(null, null); // does not run cctor
}
}只印了一次。我以为它会跑好几次。
发布于 2022-07-06 16:42:49
据我所知,无论您是使用System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor方法还是使用TypeInitializer方法,NET6都不会多次运行静态构造函数,而Net和Net将不止一次运行静态构造函数。我想您可以在dotnet运行时github项目上发布请求。
https://stackoverflow.com/questions/71812999
复制相似问题