/// <summary> /// Processes the public constructor overloads. /// </summary> /// <param name="exportedType">The <see cref="DocExportedType"/>.</param> private void ProcessConstructors(DocExportedType exportedType) { if (!exportedType.IsClass) { return; } exportedType.Constructor = new DocConstructor(exportedType) { Name = exportedType.Name, }; var ctors = exportedType.Type.GetConstructors().Concat( exportedType.Type.GetConstructors(BindingFlags.Static | BindingFlags.NonPublic)).Distinct() .OrderBy(c => c.IsStatic ? 1 : 0).ThenBy(c => c.GetParameters().Length); foreach (var ctor in ctors) { var overload = new DocOverload(ctor, exportedType.Constructor) { Name = MemberUtils.GenerateCodeFor(ctor), XPath = MemberUtils.GetSelector(ctor), }; LinkCache.Register(overload); var staticText = ctor.IsStatic ? " static " : " "; overload.Code = $"public{staticText}{overload.Name}"; ProcessParameters(ctor.GetParameters(), overload, overload.Parameters); exportedType.Constructor.Overloads.Add(overload); } }
static string GetName(DocOverload overload) { var name = overload.Name.Split(".")[^ 1];