IApiMetadataProvider Pennington.ApiMetadata
Backend-neutral source of API documentation metadata. Implementations adapt Roslyn workspaces, DocFx ManagedReference YAML, or other sources to a single contract consumed by the API reference UI.
Methods
GetExtensionMethodsForAsync
#Task<ImmutableArray<ExtensionMethodEntry>> GetExtensionMethodsForAsync(string receiverTypeName);Returns public extension methods whose first parameter's receiver type has the unqualified name receiverTypeName. Backends that cannot enumerate extensions (e.g. DocFx YAML) return an empty array.
Parameters
receiverTypeNamestring
Returns
Task<ImmutableArray<ExtensionMethodEntry>>GetMemberAsync
#Task<ApiMember?> GetMemberAsync(string uid);Returns a standalone ApiMember for the method/property/field/event identified by uid, or null when the uid is unknown or resolves to a type. Used by components that render a single member (e.g. <ApiParameterTable>).
Parameters
uidstring
Returns
Task<ApiMember?>GetMembersAsync
#Task<ImmutableArray<ApiMember>> GetMembersAsync(
string typeUid,
MemberKind kind,
AccessFilter access,
MemberOrder order);Returns members of the type identified by typeUid matching the filters.
Parameters
typeUidstringkindMemberKindaccessAccessFilterorderMemberOrder
Returns
Task<ImmutableArray<ApiMember>>GetTypeAsync
#Task<ApiTypeDetail?> GetTypeAsync(string uid);Returns full detail for the type identified by uid, or null when the type is not known to this provider.
Parameters
uidstring
Returns
Task<ApiTypeDetail?>GetTypesAsync
#Task<ImmutableArray<ApiTypeSummary>> GetTypesAsync();Returns every documented type the provider knows about, sorted by FullTypeName.
Returns
Task<ImmutableArray<ApiTypeSummary>>GetXmldocAsync
#Task<ParsedXmlDoc> GetXmldocAsync(string uid);Returns parsed xmldoc for the type or member identified by uid, or Empty when the uid is unknown. Used by inline components like <ApiSummary> that target arbitrary symbols.
Parameters
uidstring
Returns
Task<ParsedXmlDoc>Pennington.ApiMetadata.IApiMetadataProvider
namespace Pennington.ApiMetadata;
/// Backend-neutral source of API documentation metadata. Implementations adapt Roslyn workspaces, DocFx ManagedReference YAML, or other sources to a single contract consumed by the API reference UI.
public interface IApiMetadataProvider
{
/// Returns public extension methods whose first parameter's receiver type has the unqualified name receiverTypeName. Backends that cannot enumerate extensions (e.g. DocFx YAML) return an empty array.
Task<ImmutableArray<ExtensionMethodEntry>> GetExtensionMethodsForAsync(string receiverTypeName);
/// Returns a standalone ApiMember for the method/property/field/event identified by uid, or null when the uid is unknown or resolves to a type. Used by components that render a single member (e.g. <ApiParameterTable>).
Task<ApiMember?> GetMemberAsync(string uid);
/// Returns members of the type identified by typeUid matching the filters.
Task<ImmutableArray<ApiMember>> GetMembersAsync(
string typeUid,
MemberKind kind,
AccessFilter access,
MemberOrder order);
/// Returns full detail for the type identified by uid, or null when the type is not known to this provider.
Task<ApiTypeDetail?> GetTypeAsync(string uid);
/// Returns every documented type the provider knows about, sorted by FullTypeName.
Task<ImmutableArray<ApiTypeSummary>> GetTypesAsync();
/// Returns parsed xmldoc for the type or member identified by uid, or Empty when the uid is unknown. Used by inline components like <ApiSummary> that target arbitrary symbols.
Task<ParsedXmlDoc> GetXmldocAsync(string uid);
}