namespace InnovEnergy.Lib.Utils.Reflection; public abstract class DataMember : Member { public abstract Object? Get(); public abstract void Set(Object value); public abstract Boolean IsWriteable { get; } public abstract Boolean IsReadable { get; } } public static class DataMembers { public static IEnumerable OfInstance(T instance) where T : notnull { return instance.GetDataMembers(); } public static IEnumerable GetDataMembers(this T instance) where T : notnull { var fields = instance.GetFields(); var props = instance.GetProperties(); return fields.Concat(props); } }