弄清楚反射场是否是易变的

Alx*_*ndr 3 c# reflection volatile

我正在尝试使用反射从一个程序集中挖掘信息,而我想知道的事情之一(假设它实际上是一件要知道的事情)就是一个字段是否是易变的.换句话说,如果我有以下课程

public class Test {
    public volatile int Counter = 0;
}
Run Code Online (Sandbox Code Playgroud)

有什么方法可以(通过反思)弄清楚该Test.Counter领域确实是不稳定的吗?或者根本就没有出口?

Dar*_*rov 5

你可以使用这个GetRequiredCustomModifiers方法:

var field = typeof(Test).GetField("Counter");
bool isVolatile = field
    .GetRequiredCustomModifiers()
    .Any(x => x == typeof(IsVolatile));
Run Code Online (Sandbox Code Playgroud)