summaryrefslogtreecommitdiff
path: root/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2023-05-12 09:24:40 +0800
committerchai <215380520@qq.com>2023-05-12 09:24:40 +0800
commit2a1cd4fda8a4a8e649910d16b4dfa1ce7ae63543 (patch)
treea471fafed72e80b4ac3ac3002e06c34220dd6058 /ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos
parentb8a694746562b37dc8dc5b8b5aec8612bb0964fc (diff)
*misc
Diffstat (limited to 'ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos')
-rw-r--r--ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/AssemblyInfo.cs30
-rw-r--r--ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/ConstructorInfo.cs20
-rw-r--r--ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/Info.cs105
-rw-r--r--ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/MethodInfo.cs25
-rw-r--r--ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/NamespaceInfo.cs49
-rw-r--r--ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/PropertyInfo.cs24
-rw-r--r--ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/TypeInfo.cs93
7 files changed, 346 insertions, 0 deletions
diff --git a/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/AssemblyInfo.cs b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/AssemblyInfo.cs
new file mode 100644
index 0000000..8e14d42
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/AssemblyInfo.cs
@@ -0,0 +1,30 @@
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Reflection;
+using System.Xml.Linq;
+
+namespace CsvHelper.DocsGenerator.Infos
+{
+ [DebuggerDisplay("Name = {Name}")]
+ public class AssemblyInfo : Info
+ {
+ public Assembly Assembly { get; protected set; }
+
+ public List<NamespaceInfo> Namespaces { get; private set; }
+
+ public AssemblyInfo(Assembly assembly, XElement xmlDocs)
+ {
+ Assembly = assembly;
+
+ Namespaces =
+ (
+ from type in assembly.GetTypes()
+ where type.IsPublic
+ orderby type.Namespace ascending, type.Name ascending
+ group type by type.Namespace into g
+ select new NamespaceInfo(this, g.Key, g.ToList(), xmlDocs)
+ ).ToList();
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/ConstructorInfo.cs b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/ConstructorInfo.cs
new file mode 100644
index 0000000..3a00b19
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/ConstructorInfo.cs
@@ -0,0 +1,20 @@
+using System.Collections.Generic;
+using System.Linq;
+using System.Xml.Linq;
+
+namespace CsvHelper.DocsGenerator.Infos
+{
+ public class ConstructorInfo : Info
+ {
+ public System.Reflection.ConstructorInfo Constructor { get; private set; }
+
+ public List<System.Reflection.ParameterInfo> Parameters { get; private set; }
+
+ public ConstructorInfo(System.Reflection.ConstructorInfo constructorInfo, XElement xmlDocs)
+ {
+ Constructor = constructorInfo;
+
+ Parameters = constructorInfo.GetParameters().ToList();
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/Info.cs b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/Info.cs
new file mode 100644
index 0000000..fda1943
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/Info.cs
@@ -0,0 +1,105 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Text.RegularExpressions;
+using System.Xml;
+using System.Xml.Linq;
+
+namespace CsvHelper.DocsGenerator.Infos
+{
+ [DebuggerDisplay("Name = {Name}, DisplayName = {DisplayName}, Namespace = {NameSpace}, FullName = {FullName}")]
+ public abstract class Info
+ {
+ //private string fullName;
+ //private string fullHtmlName;
+ //private string fullCodeName;
+
+ //protected readonly HtmlFormatter htmlFormatter = new HtmlFormatter();
+ //protected readonly XmlDocFormatter xmlDocFormatter = new XmlDocFormatter();
+
+ //public string Namespace { get; protected set; }
+
+ //public string Name { get; protected set; }
+
+ //public string HtmlName { get; protected set; }
+
+ //public string CodeName { get; protected set; }
+
+ //public string FullName
+ //{
+ // get => fullName ?? $"{Namespace}.{Name}";
+ // protected set => fullName = value;
+ //}
+
+ //public string FullHtmlName
+ //{
+ // get => fullHtmlName ?? $"{Namespace}.{HtmlName}";
+ // protected set => fullHtmlName = value;
+ //}
+
+ //public string FullCodeName
+ //{
+ // get => fullCodeName ?? $"{Namespace}.{CodeName}";
+ // protected set => fullCodeName = value;
+ //}
+
+ //public string Summary { get; protected set; }
+
+ protected string ParseSummary(string memberName, XElement xmlDocs)
+ {
+ var members = xmlDocs.Descendants("member");
+ var member = members?.SingleOrDefault(m => m.Attribute("name")?.Value == memberName);
+ var summary = member?.Element("summary");
+ if (summary != null)
+ {
+ var summaryText = new List<string>();
+ foreach (var node in summary.Nodes())
+ {
+ string text;
+ if (node.NodeType == XmlNodeType.Element)
+ {
+ var el = (XElement)node;
+ switch (el.Name.ToString())
+ {
+ case "paramref":
+ text = el.Attribute("name").Value;
+ break;
+ case "see":
+ text = el.Attribute("cref").Value.Substring(2);
+ break;
+ case "c":
+ text = el.Value;
+ break;
+ default:
+ throw new InvalidOperationException($"Unhandled element '{el.Name}'.");
+ }
+
+ text = $"``{text.Trim()}``";
+ }
+ else if (node.NodeType == XmlNodeType.Text)
+ {
+ text = node.ToString();
+ }
+ else
+ {
+ throw new InvalidOperationException($"Unhandled node type '{node.NodeType}'.");
+ }
+
+ text = Regex.Replace(text, @"\s{2,}", " ").Trim();
+
+ summaryText.Add(text);
+ }
+
+ return string.Join(" ", summaryText);
+ }
+
+ if (memberName.Substring(2).StartsWith("CsvHelper"))
+ {
+ Console.WriteLine($"No summary found for '{memberName}'.");
+ }
+
+ return null;
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/MethodInfo.cs b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/MethodInfo.cs
new file mode 100644
index 0000000..c73913e
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/MethodInfo.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Xml.Linq;
+
+namespace CsvHelper.DocsGenerator.Infos
+{
+ public class MethodInfo : Info
+ {
+ public System.Reflection.MethodInfo Method { get; private set; }
+
+ public List<System.Reflection.ParameterInfo> Parameters { get; private set; }
+
+ public List<Type> GenericArguments { get; private set; }
+
+ public MethodInfo(System.Reflection.MethodInfo methodInfo, XElement xmlDocs)
+ {
+ Method = methodInfo;
+
+ Parameters = methodInfo.GetParameters().ToList();
+
+ GenericArguments = methodInfo.GetGenericArguments().ToList();
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/NamespaceInfo.cs b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/NamespaceInfo.cs
new file mode 100644
index 0000000..a143391
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/NamespaceInfo.cs
@@ -0,0 +1,49 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Xml.Linq;
+
+namespace CsvHelper.DocsGenerator.Infos
+{
+ [DebuggerDisplay("Name = {Name}")]
+ public class NamespaceInfo : Info
+ {
+ public AssemblyInfo Assembly { get; protected set; }
+
+ public string Namespace { get; protected set; }
+
+ public List<TypeInfo> Types { get; private set; } = new List<TypeInfo>();
+
+ public List<TypeInfo> Classes { get; private set; } = new List<TypeInfo>();
+
+ public List<TypeInfo> Interfaces { get; private set; } = new List<TypeInfo>();
+
+ public List<TypeInfo> Enums { get; private set; } = new List<TypeInfo>();
+
+ public NamespaceInfo(AssemblyInfo assemblyInfo, string @namespace, List<Type> types, XElement xmlDocs)
+ {
+ Assembly = assemblyInfo;
+
+ Namespace = @namespace;
+
+ foreach (var type in types)
+ {
+ var typeInfo = new TypeInfo(type, xmlDocs);
+ Types.Add(typeInfo);
+
+ if (type.IsClass)
+ {
+ Classes.Add(typeInfo);
+ }
+ else if (type.IsInterface)
+ {
+ Interfaces.Add(typeInfo);
+ }
+ else if (type.IsEnum)
+ {
+ Enums.Add(typeInfo);
+ }
+ }
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/PropertyInfo.cs b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/PropertyInfo.cs
new file mode 100644
index 0000000..2d53638
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/PropertyInfo.cs
@@ -0,0 +1,24 @@
+using System.Collections.Generic;
+using System.Linq;
+using System.Xml.Linq;
+
+namespace CsvHelper.DocsGenerator.Infos
+{
+ public class PropertyInfo : Info
+ {
+ public List<System.Reflection.ParameterInfo> IndexParameters { get; protected set; }
+
+ public TypeInfo Type { get; protected set; }
+
+ public System.Reflection.PropertyInfo Property { get; protected set; }
+
+ public PropertyInfo(TypeInfo type, System.Reflection.PropertyInfo propertyInfo, XElement xmlDocs)
+ {
+ Type = type;
+
+ Property = propertyInfo;
+
+ IndexParameters = propertyInfo.GetIndexParameters().ToList();
+ }
+ }
+}
diff --git a/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/TypeInfo.cs b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/TypeInfo.cs
new file mode 100644
index 0000000..18d67f3
--- /dev/null
+++ b/ThirdParty/CsvHelper-master/docs-src/CsvHelper.DocsGenerator/Infos/TypeInfo.cs
@@ -0,0 +1,93 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System.Xml.Linq;
+
+namespace CsvHelper.DocsGenerator.Infos
+{
+ public class TypeInfo : Info
+ {
+ private static readonly LinkGenerator linkGenerator = new LinkGenerator();
+
+ public Type Type { get; protected set; }
+
+ public List<Type> Attributes { get; protected set; }
+
+ public List<ConstructorInfo> Constructors { get; protected set; }
+
+ public List<Type> Interfaces { get; protected set; }
+
+ public List<FieldInfo> Fields { get; protected set; }
+
+ public List<PropertyInfo> Properties { get; protected set; }
+
+ public List<MethodInfo> Methods { get; protected set; }
+
+ public Stack<Type> Inheritance { get; protected set; }
+
+ public List<Type> Implementers { get; protected set; }
+
+ public TypeInfo(Type type, XElement xmlDocs)
+ {
+ Type = type;
+
+ Interfaces = type.GetInterfaces().ToList();
+
+ Constructors = type
+ .GetConstructors(BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly)
+ .Select(c => new ConstructorInfo(c, xmlDocs))
+ .Where(c => !(c.Parameters.Count == 0 && string.IsNullOrEmpty(c.Constructor.GetSummary())))
+ .OrderBy(c => c.Parameters.Count)
+ .ToList();
+
+ Attributes = type
+ .GetCustomAttributes()
+ .Select(a => a.GetType())
+ .OrderBy(t => t.Name)
+ .ToList();
+
+ var fieldsFlags = type.IsEnum
+ ? BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly
+ : BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly;
+ Fields = type
+ .GetFields(fieldsFlags)
+ .OrderBy(f => f.Name)
+ .ToList();
+
+ Properties = type
+ .GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly)
+ .Select(p => new PropertyInfo(this, p, xmlDocs))
+ .OrderBy(p => p.Property.Name)
+ .ToList();
+
+ Methods = type
+ .GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly)
+ .Where(m => !m.IsSpecialName)
+ .Select(m => new MethodInfo(m, xmlDocs))
+ .OrderBy(m => m.Method.Name)
+ .ToList();
+
+ Inheritance = new Stack<Type>();
+ if (type.BaseType != null)
+ {
+ Inheritance.Push(type);
+ var currentType = type.BaseType;
+ do
+ {
+ Inheritance.Push(currentType);
+ currentType = currentType.BaseType;
+ }
+ while (currentType != null);
+ }
+
+ Implementers = new List<Type>();
+ if (type.BaseType != null && type.BaseType != typeof(object))
+ {
+ Implementers.Add(type.BaseType);
+ }
+
+ Implementers.AddRange(Interfaces.Select(i => i));
+ }
+ }
+}