Class ServiceExtensionCreator.Input
Everything needed to generate one service extension.
Inheritance
ServiceExtensionCreator.Input
Assembly: Serenity.ServiceExtensionCreator.Editor.dll
public sealed class ServiceExtensionCreator.Input
Constructors
Declaration
Fields
Declaration
public string AggregateName
Field Value
True (the default, and what every spec written before this option existed gets) appends the
extension point's suffix to ExtensionName — "Arcade" against Score becomes
ArcadeScoreService. False uses ExtensionName exactly as typed, so
"ArcadeScoreKeeper" stays ArcadeScoreKeeper instead of ArcadeScoreKeeperScoreService.
Declaration
public bool AppendExtensionPointSuffix
Field Value
When true and Wiring is PipelineReplace, the task asset is appended to the
resolved UnityInitializationPipelineProfile.Tasks list; otherwise the README documents the manual step.
Declaration
public bool AppendToPipelineProfile
Field Value
Declaration
public ServiceExtensionCreator.AsmdefMode AsmdefMode
Field Value
Ignored for every kind other than Service — every other
kind always builds on the Infrastructure layer (a store/repository/gateway/factory IS an
infrastructure adapter by nature; there is no "Business" shape for one).
Declaration
public ServiceExtensionCreator.BaseLayer BaseLayer
Field Value
User-facing extension name. With AppendExtensionPointSuffix on it is combined
with the extension point's name to form the generated type name; with it off it IS the type name.
Declaration
public string ExtensionName
Field Value
Declaration
public string ExtensionPointName
Field Value
Declaration
public bool GenerateReadme
Field Value
Declaration
public bool GenerateTestStub
Field Value
Which kind of extension point to generate. Defaults to Service
for back-compat — a spec that only sets AggregateName behaves exactly as before.
Declaration
public ExtensionPointKind Kind
Field Value
Root namespace every generated layer's namespace is built from
({RootNamespace}.{CodeLayer}.Services, {RootNamespace}.Installation.Installers,
{RootNamespace}.Tests); empty defaults to the composed root (the service type name minus
its trailing "Service").
Declaration
public string NamespaceOverride
Field Value
When false, generated .asset outputs are not registered as Addressables — tests opt out
so they do not pollute the project's Addressables settings.
Declaration
public bool RegisterAsAddressables
Field Value
Declaration
public ServiceExtensionCreator.Style Style
Field Value
Declaration
public string SubclassBaseTypeName
Field Value
Project-relative folder the extension is generated into (e.g. "Assets/Game/Scripts"). The
extension gets its own child folder there, named after its root (see ServiceExtensionLayout),
and every layer folder is created beneath that.
Declaration
public string TargetFolderPath
Field Value
Ignored for every kind other than Service — every other
kind's wiring shape is dictated entirely by Kind (Store/Installer always generate a
backend-definition asset, Repository/Gateway always generate an installer-hook subclass when one
is discoverable, Factory never generates wiring), never a free user choice.
Declaration
public ServiceExtensionCreator.Wiring Wiring
Field Value