Class AggregateCatalog
Reflection-based discovery of Serenity's extendable aggregates: every I{X}Service interface
deriving from IService, filtered to primary aggregates (see
Serenity.ServiceExtensionCreator.Editor.AggregateCatalog.HasPrimaryModuleFolder(System.String)) and enriched with the concrete Unity service/installer types,
virtualization status and InterfaceAdapters presence. The guarded assembly scan mirrors
AutoRegisterServiceBootstrap.SafeGetTypes so one broken assembly can never abort discovery.
Inherited Members
Namespace: Serenity.ServiceExtensionCreator.Editor
Assembly: Serenity.ServiceExtensionCreator.Editor.dll
Syntax
public static class AggregateCatalog
Fields
CoreInstalledAggregates
Aggregates installed by UnitySerenityInstaller at boot; their natural wiring is PipelineReplace.
Declaration
public static readonly IReadOnlyCollection<string> CoreInstalledAggregates
Field Value
| Type | Description |
|---|---|
| IReadOnlyCollection<string> |
ExcludedAggregates
Infrastructure/meta aggregates that are never valid extension targets, named by their DERIVED
aggregate name (the "X" in I{X}Service) rather than by module folder name — e.g.
ILogService derives "Log", not "Logging". "ServiceLocator", "Task" and
"InitializationPipeline" never actually surface (no matching I{X}Service interface exists),
they are listed here defensively in case one is ever added.
Declaration
public static readonly IReadOnlyCollection<string> ExcludedAggregates
Field Value
| Type | Description |
|---|---|
| IReadOnlyCollection<string> |
Methods
Discover()
Discovers every extendable aggregate. Cached for the lifetime of the current domain.
Declaration
public static IReadOnlyList<AggregateDescriptor> Discover()
Returns
| Type | Description |
|---|---|
| IReadOnlyList<AggregateDescriptor> |
Invalidate()
Clears the cached catalog, forcing the next Discover() call to re-scan.
Declaration
public static void Invalidate()