How to get the value of private field in C#?

后端 未结 8 1919
我在风中等你
我在风中等你 2020-11-29 06:55

I ran into a problem that I need to access to private field of a class. For example:

class MyClass 
{
    private string someString;

    public MyClass( stri         


        
8条回答
  •  Happy的楠姐
    2020-11-29 07:45

    Here is a working generics version as clean as I can get it.

    private static object GetInstanceField(T instance, string fieldName)
    {                
        BindingFlags bindFlags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static;
        FieldInfo field = typeof(T).GetField(fieldName, bindFlags);
        return field.GetValue(instance);
    }
    

    usage

    var str = (string)GetInstanceField(instance, "someString");
    

提交回复
热议问题