Class SerenitySystemConfigurationResolver
Resolves where each SerenityInstallableSystem's settings asset currently stands:
missing, shipped inside the package, authored in the user's project, or invalid (ambiguous, or
carrying a broken IFoundationSettings identity). Cached until Invalidate() is
called — a caller that wants a fresh read after the project changed (e.g. a wizard window
regaining focus, following the LeaderboardWizardBoardStepValidationCache precedent)
invalidates first.
Inherited Members
Namespace: Serenity.CreateGame.Infrastructure.Editor.Systems
Assembly: Serenity.UnityCreateGame.Infrastructure.Editor.dll
Syntax
public sealed class SerenitySystemConfigurationResolver
Constructors
SerenitySystemConfigurationResolver()
Declaration
public SerenitySystemConfigurationResolver()
Properties
RecomputeCountForTests
Declaration
public int RecomputeCountForTests { get; }
Property Value
| Type | Description |
|---|---|
| int | Test seam: how many times Resolve(IReadOnlyList<SerenityInstallableSystem>) actually recomputed, as opposed to returning the cache. |
Methods
Invalidate()
Forces the next Resolve(IReadOnlyList<SerenityInstallableSystem>) call to recompute instead of returning the cache.
Declaration
public void Invalidate()
Resolve(IReadOnlyList<SerenityInstallableSystem>)
Returns one row per system in systems, computed once and cached until
Invalidate() is called. Recomputing costs exactly one
Serenity.Global.Infrastructure.Editor.Validation.SerenityHealthCheckValidator.LoadFoundationAssets project-wide scan, shared by
every system's identity check. Every row's BootTaskWiring
is computed over every project-owned initialization pipeline profile — use the
Resolve(IReadOnlyList<SerenityInstallableSystem>, IReadOnlyList<string>) overload once a
profile has already been resolved, so a row's own "wired?" answer never disagrees with a wiring plan
built against that same resolved profile.
Declaration
public IReadOnlyList<SerenitySystemConfigurationRow> Resolve(IReadOnlyList<SerenityInstallableSystem> systems)
Parameters
| Type | Name | Description |
|---|---|---|
| IReadOnlyList<SerenityInstallableSystem> | systems |
Returns
| Type | Description |
|---|---|
| IReadOnlyList<SerenitySystemConfigurationRow> |
Resolve(IReadOnlyList<SerenityInstallableSystem>, IReadOnlyList<string>)
Declaration
public IReadOnlyList<SerenitySystemConfigurationRow> Resolve(IReadOnlyList<SerenityInstallableSystem> systems, IReadOnlyList<string> restrictWiringToProfilePaths)
Parameters
| Type | Name | Description |
|---|---|---|
| IReadOnlyList<SerenityInstallableSystem> | systems | The systems to resolve a row for. |
| IReadOnlyList<string> | restrictWiringToProfilePaths | When non-null, BootTaskWiring only counts a system as wired into one of these project-owned profiles — the SAME already-resolved profile set Serenity.CreateGame.Infrastructure.Editor.Wiring.ProjectWiringPlanner plans a run's boot tasks against. Null checks every project-owned profile. |
Returns
| Type | Description |
|---|---|
| IReadOnlyList<SerenitySystemConfigurationRow> |
Events
Invalidated
Raised every time Invalidate() runs — a caller that caches something derived from this resolver's rows (Initialize Serenity's own dry-run preview, e.g.) subscribes once instead of hunting down every one of this class's callers to add its own invalidation call beside theirs.
Declaration
public event Action Invalidated
Event Type
| Type | Description |
|---|---|
| Action |