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<DataMember> OfInstance<T>(T instance) where T : notnull { return instance.GetDataMembers(); } public static IEnumerable<DataMember> GetDataMembers<T>(this T instance) where T : notnull { var fields = instance.GetFields(); var props = instance.GetProperties(); return fields.Concat<DataMember>(props); } }