Skip to content

Use layering to make conventions more robust #15898

@AndriySvyryd

Description

@AndriySvyryd
  • Store different configuration source values in separate layers, so when a higher source value is removed the lower source can be restored without re-running the conventions
  • Use reference counting to avoid scanning the model for unused elements. When a configuration source of an aspect is changed because it is referenced from another element this reference should be stored in a collection, so if all references are removed the aspect can be removed as well or its configuration source downgraded to what it was previously
    • Call StopProcessingIfChanged after every convention automatically
  • When the conventions for an event are done running the current model state should be returned

This should allow to fix these:

  • Remove most invocations on removed members and stop running the conventions when a removed member is readded
  • Remove the implementation of EntityType.IsOwned() or add a convention type for it

Metadata

Metadata

Assignees

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions