namespace InnovEnergy.Lib.Utils.Reflection; public abstract class Member { public abstract String Name { get; } public abstract Type Type { get; } public abstract Boolean IsPublic { get; } public abstract Boolean IsPrivate { get; } public abstract Boolean IsStatic { get; } public abstract IEnumerable Attributes { get; } } public static class Members { public static IEnumerable OfInstance(T instance) where T : notnull { return instance.GetMembers(); } public static IEnumerable GetMembers(this T instance) where T : notnull { var fields = instance.GetFields(); var props = instance.GetProperties(); var methods = instance.GetMethods(); return fields .Concat(props) .Concat(methods); } }