RoslynApiMetadataProvider Pennington.Roslyn.ApiMetadata
Roslyn-backed IApiMetadataProvider. Walks the configured solution to produce ApiTypeSummary, ApiTypeDetail, and ApiMember instances with pre-formatted signatures.
Constructors
.ctor
#public RoslynApiMetadataProvider(
ISolutionWorkspaceService workspace,
ISymbolExtractionService symbolService,
IXmlDocParser xmlDocParser,
ICodeHighlighter highlighter,
ApiReferenceOptions options);Initializes the provider.
Parameters
workspaceISolutionWorkspaceServicesymbolServiceISymbolExtractionServicexmlDocParserIXmlDocParserhighlighterICodeHighlighteroptionsApiReferenceOptions
Methods
GetExtensionMethodsForAsync
#public async 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
#public async 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
#public async 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
#public async 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
#public Task<ImmutableArray<ApiTypeSummary>> GetTypesAsync();Returns every documented type the provider knows about, sorted by FullTypeName.
Returns
Task<ImmutableArray<ApiTypeSummary>>GetXmldocAsync
#public async 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.Roslyn.ApiMetadata.RoslynApiMetadataProvider
namespace Pennington.Roslyn.ApiMetadata;
/// Roslyn-backed IApiMetadataProvider. Walks the configured solution to produce ApiTypeSummary, ApiTypeDetail, and ApiMember instances with pre-formatted signatures.
public class RoslynApiMetadataProvider
{
/// Initializes the provider.
public RoslynApiMetadataProvider(
ISolutionWorkspaceService workspace,
ISymbolExtractionService symbolService,
IXmlDocParser xmlDocParser,
ICodeHighlighter highlighter,
ApiReferenceOptions options);
/// 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.
public async 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>).
public async Task<ApiMember?> GetMemberAsync(string uid);
/// Returns members of the type identified by typeUid matching the filters.
public async 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.
public async Task<ApiTypeDetail?> GetTypeAsync(string uid);
/// Returns every documented type the provider knows about, sorted by FullTypeName.
public 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.
public async Task<ParsedXmlDoc> GetXmldocAsync(string uid);
}