private IEnumerable <ReflectedParameterTypeInfo> GetParents(ReflectedParameterTypeInfo type) { if (type == null) { yield break; } foreach (var parent in GetParents(type.Type.BaseType)) { yield return(parent); } yield return(type); }
private void BuildParameterMarkup(XDoc html, ReflectedParameterTypeInfo parameterType) { if (parameterType.IsGenericType) { if (IsTypeInDocumentation(parameterType.Type)) { html.Link(parameterType.Type.UriPath, parameterType.Type.Name); } else { html.Value(parameterType.Type.Name); } html.Value("<"); bool first = true; foreach (var childParam in parameterType.Parameters) { if (!first) { html.Value(","); } first = false; BuildParameterMarkup(html, childParam); } html.Value(">"); } else { if (!parameterType.IsGenericParameter && IsTypeInDocumentation(parameterType.Type)) { html.Link(parameterType.Type.UriPath, parameterType.DisplayName); } else { html.Value(parameterType.DisplayName); } } }