Почему я продолжаю получать Delete 'cr' [красивее / красивее]?

Хороший синтаксис с методом расширения

Вы можете получить доступ к любому частному полю произвольного типа с таким кодом:

Foo foo = new Foo();
string c = foo.GetFieldValue<string>("_bar");

Для этого вам нужно определить метод расширения, который сделают для вас работу:

public static class ReflectionExtensions {
    public static T GetFieldValue<T>(this object obj, string name) {
        // Set the flags so that private and public fields from instances will be found
        var bindingFlags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance;
        var field = obj.GetType().GetField(name, bindingFlags);
        return (T)field?.GetValue(obj);
    }
}
18
задан bier hier 28 November 2018 в 09:52
поделиться