logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    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.

    Inheritance
    object
    AggregateCatalog
    Inherited Members
    object.ToString()
    object.Equals(object)
    object.Equals(object, object)
    object.ReferenceEquals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    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()
    In this article
    © 2026 Serenity. All Rights Reserved