logo SERENITY
Game Systems Foundation
Search Results for

    Show / Hide Table of Contents

    Class ServiceExtensionLayout

    Everything one generated extension will be called and where every file of it lands, resolved once from a ServiceExtensionCreator.Input before anything is written. The wizard shows this plan, the collision check refuses it when any part of it is already taken, and the creation engines execute it — so the plan shown is the plan executed.

    Every extension owns one child folder of the target, named after its Root ({Target}/{Root}/), and its layer folders and assembly definitions live beneath it. Unity allows one assembly definition per folder, so a second extension generated into the same target never shares a folder with the first, and the assembly names — Serenity.{Root}.{Layer} — derive from the same root as the folder.

    A path left null is a file this run does not generate.

    Inheritance
    object
    ServiceExtensionLayout
    Inherited Members
    object.ToString()
    object.Equals(object)
    object.Equals(object, object)
    object.ReferenceEquals(object, object)
    object.GetHashCode()
    object.GetType()
    Namespace: Serenity.ServiceExtensionCreator.Editor
    Assembly: Serenity.ServiceExtensionCreator.Editor.dll
    Syntax
    public sealed class ServiceExtensionLayout

    Constructors

    ServiceExtensionLayout()

    Declaration
    public ServiceExtensionLayout()

    Properties

    ClassFolder

    Declaration
    public string ClassFolder { get; }
    Property Value
    Type Description
    string

    ClassNamespace

    Declaration
    public string ClassNamespace { get; }
    Property Value
    Type Description
    string

    ClassScriptPath

    Declaration
    public string ClassScriptPath { get; }
    Property Value
    Type Description
    string

    CodeLayerAsmdefPath

    Declaration
    public string CodeLayerAsmdefPath { get; }
    Property Value
    Type Description
    string

    CodeLayerAssemblyName

    Declaration
    public string CodeLayerAssemblyName { get; }
    Property Value
    Type Description
    string

    CodeLayerFolder

    Declaration
    public string CodeLayerFolder { get; }
    Property Value
    Type Description
    string

    CodeLayerName

    Declaration
    public string CodeLayerName { get; }
    Property Value
    Type Description
    string

    ExtensionFolderPath

    The extension's own child folder of the target, {Target}/{Root}.

    Declaration
    public string ExtensionFolderPath { get; }
    Property Value
    Type Description
    string

    GeneratedTypeFullName

    The namespace-qualified name of TypeName, checked against every loaded type.

    Declaration
    public string GeneratedTypeFullName { get; }
    Property Value
    Type Description
    string

    HasClassScript

    Declaration
    public bool HasClassScript { get; }
    Property Value
    Type Description
    bool

    InstallationAsmdefPath

    Declaration
    public string InstallationAsmdefPath { get; }
    Property Value
    Type Description
    string

    InstallationAssemblyName

    Declaration
    public string InstallationAssemblyName { get; }
    Property Value
    Type Description
    string

    InstallationFolder

    Declaration
    public string InstallationFolder { get; }
    Property Value
    Type Description
    string

    InstallersFolder

    Declaration
    public string InstallersFolder { get; }
    Property Value
    Type Description
    string

    PlannedAssemblies

    Every assembly this run declares, one per generated assembly definition.

    Declaration
    public IReadOnlyList<PlannedAssembly> PlannedAssemblies { get; }
    Property Value
    Type Description
    IReadOnlyList<PlannedAssembly>

    PlannedFilePaths

    Every file this run writes, in the order it writes them.

    Declaration
    public IReadOnlyList<string> PlannedFilePaths { get; }
    Property Value
    Type Description
    IReadOnlyList<string>

    ReadmePath

    Declaration
    public string ReadmePath { get; }
    Property Value
    Type Description
    string

    Root

    The name every folder, namespace and assembly of the extension is built from.

    Declaration
    public string Root { get; }
    Property Value
    Type Description
    string

    RootNamespace

    Declaration
    public string RootNamespace { get; }
    Property Value
    Type Description
    string

    SettingsAssetPath

    The replacement task asset (Service kind) or the backend definition asset (Store/Installer kinds).

    Declaration
    public string SettingsAssetPath { get; }
    Property Value
    Type Description
    string

    SettingsFolder

    Declaration
    public string SettingsFolder { get; }
    Property Value
    Type Description
    string

    TargetFolderPath

    The target folder the author picked.

    Declaration
    public string TargetFolderPath { get; }
    Property Value
    Type Description
    string

    TestScriptPath

    Declaration
    public string TestScriptPath { get; }
    Property Value
    Type Description
    string

    TestsAsmdefPath

    Declaration
    public string TestsAsmdefPath { get; }
    Property Value
    Type Description
    string

    TestsAssemblyName

    Declaration
    public string TestsAssemblyName { get; }
    Property Value
    Type Description
    string

    TestsFolder

    Declaration
    public string TestsFolder { get; }
    Property Value
    Type Description
    string

    TestsNamespace

    Declaration
    public string TestsNamespace { get; }
    Property Value
    Type Description
    string

    TypeName

    The generated type — the class for every kind but Installer, whose generated type is the wiring subclass.

    Declaration
    public string TypeName { get; }
    Property Value
    Type Description
    string

    WiringNamespace

    Declaration
    public string WiringNamespace { get; }
    Property Value
    Type Description
    string

    WiringScriptPath

    Declaration
    public string WiringScriptPath { get; }
    Property Value
    Type Description
    string

    WiringTypeName

    The generated wiring type — an installer, a replacement or an installer subclass; null when none is generated.

    Declaration
    public string WiringTypeName { get; }
    Property Value
    Type Description
    string
    In this article
    © 2026 Serenity. All Rights Reserved