public static IEnumerable <IContextVariable> GetPropertyDescriptions(this ITypeInfo type, IContextVariable parent) { if (parent == null) { throw new ArgumentNullException("parent"); } foreach (var item in type.GetAllMembers()) { yield return(new ContextVariable(parent.VariableName, item.MemberName) { Node = parent.Node, VariableType = item.MemberType, Repository = parent.Repository, }); } }