Exemple #1
0
 private IList<PropertyModel> ProcessProperties(Type type, XmlDocument xml)
 {
     return type.GetProperties(System.Reflection.BindingFlags.Public | BindingFlags.GetProperty | BindingFlags.SetProperty | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.DeclaredOnly)
         .Where(m => true).Select(m => new PropertyModel {
             Name = m.Name,
             Documentation = xml.GetDocumenation(m),
             XmlName = m.GetXmlDocumentationName(),
             IsStatic = m.GetSetMethod() != null ? m.GetSetMethod().IsStatic : m.GetGetMethod() != null ? m.GetGetMethod().IsStatic : false,
             IsReadOnly = m.GetSetMethod() == null,
             Parent = type,
             ReturnType = m.PropertyType
         }).OrderBy(x => x.Name).ToList();
 }
Exemple #2
0
 /// <summary>
 /// Processes the type.
 /// </summary>
 /// <param name="type">The type.</param>
 /// <param name="xml">The XML.</param>
 /// <returns></returns>
 private ClassModel ProcessType(Type type, XmlDocument xml)
 {
     return new ClassModel {
         Name = type.ToSafeName(),
         Namespace = type.Namespace,
         Assembly = type.Assembly.GetName().Name,
         Description = type.GetCustomAttributeValue<DescriptionAttribute, String>(x => x.Description).Or(""),
         XmlName = type.GetXmlDocumentationName(),
         Documentation = xml.GetDocumenation(type),
         Methods = ProcessMethods(type, xml),
         IsStatic = type.IsAbstract && type.IsSealed,
         Properties = ProcessProperties(type,xml)
     };
 }
Exemple #3
0
 /// <summary>
 /// Processes the methods.
 /// </summary>
 /// <param name="type">The type.</param>
 /// <param name="xml">The XML.</param>
 /// <returns></returns>
 private IList<MethodModel> ProcessMethods(Type type, XmlDocument xml)
 {
     return type.GetMethods(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.DeclaredOnly).Where(m =>
         !m.IsConstructor &&
         !m.Name.StartsWith("get_", StringComparison.CurrentCulture) &&
         !m.Name.StartsWith("set_", StringComparison.CurrentCulture) &&
         !m.Name.StartsWith("add_", StringComparison.CurrentCulture) &&
         !m.Name.StartsWith("remove_", StringComparison.CurrentCulture) &&
             // exclude overrides because I don't care about them. Unless, base definition is in this assembly.
         (m.GetBaseDefinition() == null || m.GetBaseDefinition() == m || m.GetBaseDefinition().DeclaringType.Assembly == type.Assembly)
         ).Select(m => new MethodModel {
             Name = m.Name,
             Documentation = xml.GetDocumenation(m),
             XmlName = m.GetXmlDocumentationName(),
             GenericParameters = ProcessMethodGenericParameters(m),
             Parameters = ProcessParams(m),
             ExtensionOf = m.ExtensionOf(),
             Parent = type,
             IsStatic = m.IsStatic,
             ReturnType = m.ReturnType
         }).OrderBy(x => x.Name).ThenBy(x => x.ExtensionOf == null ? "" : x.ExtensionOf.ToSafeFullName()).ThenBy(x => x.Parameters.Count).ToList();
 }