diff --git a/examples/Demo/Shared/Components/ApiDocumentation.razor.cs b/examples/Demo/Shared/Components/ApiDocumentation.razor.cs index 156e525ebf..fb8e372afc 100644 --- a/examples/Demo/Shared/Components/ApiDocumentation.razor.cs +++ b/examples/Demo/Shared/Components/ApiDocumentation.razor.cs @@ -141,7 +141,7 @@ private IEnumerable GetMembers(MemberTypes type) Type = propertyInfo.ToTypeNameString(), EnumValues = GetEnumValues(propertyInfo), Default = defaultVaue, - Description = CodeComments.GetSummary(Component.Name + "." + propertyInfo.Name) ?? CodeComments.GetSummary(Component.BaseType?.Name + "." + propertyInfo.Name), + Description = GetMembersDescription(Component, propertyInfo), IsParameter = isParameter, Icon = icon }); @@ -156,7 +156,7 @@ private IEnumerable GetMembers(MemberTypes type) MemberType = MemberTypes.Event, Name = propertyInfo.Name, Type = propertyInfo.ToTypeNameString(), - Description = CodeComments.GetSummary(Component.Name + "." + propertyInfo.Name) ?? CodeComments.GetSummary(Component.BaseType?.Name + "." + propertyInfo.Name) + Description = GetMembersDescription(Component, propertyInfo) }); } } @@ -176,7 +176,7 @@ private IEnumerable GetMembers(MemberTypes type) Name = methodInfo.Name + genericArguments, Parameters = methodInfo.GetParameters().Select(i => $"{i.ToTypeNameString()} {i.Name}").ToArray(), Type = methodInfo.ToTypeNameString(), - Description = CodeComments.GetSummary(Component.Name + "." + methodInfo.Name) ?? CodeComments.GetSummary(Component.BaseType?.Name + "." + methodInfo.Name) + Description = GetMembersDescription(Component, methodInfo) }); } } @@ -194,6 +194,25 @@ private IEnumerable GetMembers(MemberTypes type) return _allMembers.Where(i => i.MemberType == type); } + /// + /// Gets member description. If none provided, base member description is returned. + /// + /// + /// + /// + /// member description + private static string GetMembersDescription(Type component, T memberInfo) where T : MemberInfo + { + var description = CodeComments.GetSummary(component.Name + "." + memberInfo.Name); + + if (description == null && component.BaseType != null) + { + description = GetMembersDescription(component.BaseType, memberInfo); + } + + return description ?? string.Empty; + } + private static string[] GetEnumValues(PropertyInfo? propertyInfo) { if (propertyInfo != null)