Esempio n. 1
0
 public ReflectedParameterTypeInfo BuildType(Type type) {
     if(type == null) {
         return null;
     }
     var typeInfo = new ReflectedParameterTypeInfo();
     if(type.IsGenericParameter) {
         typeInfo.IsGenericParameter = true;
         typeInfo.GenericParameter = _genericParameterProvider.GetGenericParameter(type.Name);
         return typeInfo;
     }
     typeInfo.Type = _getType(type);
     if(!type.IsGenericType) {
         return typeInfo;
     }
     typeInfo.IsGenericType = true;
     typeInfo.Parameters = (from parameter in type.GetGenericArguments() select BuildType(parameter)).ToList();
     return typeInfo;
 }
        public ReflectedParameterTypeInfo BuildType(Type type)
        {
            if (type == null)
            {
                return(null);
            }
            var typeInfo = new ReflectedParameterTypeInfo();

            if (type.IsGenericParameter)
            {
                typeInfo.IsGenericParameter = true;
                typeInfo.GenericParameter   = _genericParameterProvider.GetGenericParameter(type.Name);
                return(typeInfo);
            }
            typeInfo.Type = _getType(type);
            if (!type.IsGenericType)
            {
                return(typeInfo);
            }
            typeInfo.IsGenericType = true;
            typeInfo.Parameters    = (from parameter in type.GetGenericArguments() select BuildType(parameter)).ToList();
            return(typeInfo);
        }
Esempio n. 3
0
 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;
 }
Esempio n. 4
0
        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);
                }
            }
        }