public static SearchableMember Create(MemberInfo info, SearchableType parent, DocumentationLoaderService documentationLoaderService) { var summary = documentationLoaderService.GetSummaryFromInfo(info); return(info switch { PropertyInfo propertyInfo => new SearchableProperty(propertyInfo, parent, summary), MethodInfo { DeclaringType : { } } methodInfo when methodInfo.DeclaringType == typeof(object) => new HiddenSearchable(methodInfo, parent, summary), MethodInfo methodInfo when methodInfo.IsExtensionMethod() => new SearchableExtensionMethod(methodInfo, parent, summary), MethodInfo methodInfo => new SearchableMethod(methodInfo, parent, summary), FieldInfo fieldInfo => new SearchableField(fieldInfo, parent, summary), EventInfo eventInfo => new SearchableEvent(eventInfo, parent, summary), ConstructorInfo constructorInfo => new SearchableConstructor(constructorInfo, parent, summary), TypeInfo typeInfo => new HiddenSearchable(typeInfo, parent, summary), _ => new SearchableUnknown(info, parent, summary) });
public SearchableConstructor(ConstructorInfo info, SearchableType parent, string summary) : base(parent, summary) { Info = info; }
protected SearchableMember(SearchableType parent, string summary) { Parent = parent; Summary = summary; }
public SearchableProperty(PropertyInfo info, SearchableType parent, string summary) : base(parent, summary) { Info = info; }
public SearchableField(FieldInfo info, SearchableType parent, string summary) : base(parent, summary) { Info = info; }
public SearchableMethod(MethodInfo info, SearchableType parent, string summary) : base(parent, summary) { Info = info; }
public HiddenSearchable(MemberInfo info, SearchableType parent, string summary) : base(parent, summary) { Info = info; }
public SearchableExtensionMethod(MethodInfo info, SearchableType parent, string summary) : base(info, parent, summary) { }
public SearchableUnknown(MemberInfo info, SearchableType parent, string summary) : base(parent, summary) { Info = info; }
public SearchableEvent(EventInfo info, SearchableType parent, string summary) : base(parent, summary) { Info = info; }