EyeAuras Docs EyeAuras Docs
EyeAuras Docs EyeAuras Docs
DocFX + Singulink = ♥

Search Results for

    Class ScriptContainerExtension

    Base class for script-level Unity container extensions used in Aura scripting.

    Inheritance
    object
    UnityContainerExtension
    ScriptContainerExtension
    Implements
    IUnityContainerExtensionConfigurator
    Inherited Members
    UnityContainerExtension.InitializeExtension(ExtensionContext)
    UnityContainerExtension.Initialize()
    UnityContainerExtension.Remove()
    UnityContainerExtension.Container
    UnityContainerExtension.Context
    object.GetType()
    object.MemberwiseClone()
    object.ToString()
    object.Equals(object)
    object.Equals(object, object)
    object.ReferenceEquals(object, object)
    object.GetHashCode()
    Namespace: EyeAuras.Scripting.Api
    Assembly: EyeAuras.Scripting.Metadata.dll
    Syntax
    public abstract class ScriptContainerExtension : UnityContainerExtension, IUnityContainerExtensionConfigurator
    Remarks

    This extension allows script authors to declaratively register their own types into the dependency injection container used within an Unity.Extension.UnityContainerExtension context. By inheriting from ScriptContainerExtension, a script can publish its services (such as helper classes, singletons, utilities, or shared state) for consumption by other scripts.

    This pattern ensures that script services are isolated, discoverable, and optionally reusable across scripts without hard references or global registration. The Unity container used is scoped per script or script context.

    This base type is recognized and automatically loaded by the Aura runtime during script compilation if present in a script assembly. To avoid unnecessary container extensions being applied, the loader will only apply extensions that inherit from this base type.

    Examples

    Below is a simple example where a script registers a shared singleton:

    public class Registrations : ScriptContainerExtension
    {
        protected override void Initialize()
        {
            Container.RegisterSingleton<ICombatState, CombatState>();
        }
    }

    This allows another script in the same runtime to use:

    public class MyScript
    {
        public MyScript(ICombatState combatState)
        {
            combatState.StartAttack();
        }
    }

    Constructors

    Name Description
    ScriptContainerExtension()

    Extension Methods

    ObjectExtensions.AddTo<TItem, TCollection>(TItem, ISourceList<TCollection>)
    ObjectExtensions.AddTo<TItem, TCollection>(TItem, ICollection<TCollection>)
    ObjectExtensions.CloneJson<T>(T)
    ObjectExtensions.CopyPropertiesTo<TSource, TTarget>(TSource, TTarget)
    ObjectExtensions.DumpToJson<T>(T)
    ObjectExtensions.DumpToTextRaw<T>(T)
    ObjectExtensions.DumpToText<T>(T)
    ObjectExtensions.Dump<T>(T)
    ObjectExtensions.EvalOrDefault<T, TValue>(T, Func<T, TValue>, TValue)
    ObjectExtensions.Eval<T, TValue>(T, Func<T, TValue>)
    ObjectExtensions.GetPropertyAccessor<TSource, TValue>(TSource, Expression<Func<TSource, TValue>>)
    ObjectExtensions.InsertTo<TItem, TCollection>(TItem, IList<TCollection>, int)
    ObjectExtensions.ToJson<T>(T, Formatting)
    ObjectExtensions.ToStringSafe<T>(T)
    ObjectExtensions.TransferPropertiesTo<TSource, TTarget>(TSource, TTarget, params string[])
    ObjectExtensions.WaitForAsync<TObject, T1>(TObject, Func<TObject, T1>, Predicate<T1>, TimeSpan, int)
    XDocumentExtensions.AddTo<T>(T, XContainer)
    ObjectExtensions.GetPropertyAccessor<TValue>(object, string)
    ObjectReflectionExtensions.GetPropertyTypeOrDefault(object, string)
    ObjectReflectionExtensions.GetPropertyValue<T>(object, string)
    ObjectReflectionExtensions.SetPropertyValue<T>(object, string, T)

    See Also

    IAuraScriptSandbox
    2025 © Xab3r. All rights reserved.