English Deutsch

Erweiterbarkeit

LightCore ist an zwei Punkten erweiterbar:

  1. Lifecycles
  2. Registration Modules

Lifecycles

Mehr Informationen zu den schon vorhandenen Lifecycles und das Prinzip dahinter, gibt es unter Lifecycles.

Um einen neuen Lifecycle zu erstellen, muss das Interface ILifecycle implementiert werden:



        
            /// <summary>
            /// Represents a lifecycle where instances can be reused.
            /// </summary>
            public interface ILifecycle
            {

                /// <summary>
                /// Handle the reuse of instances.
                /// </summary>
                /// <param name="newInstanceResolver">The function for lazy get an instance.</param>
                object ReceiveInstanceInLifecycle(Func<object> newInstanceResolver);
            }
        
    

Die Methode bekommt eine Factory für die aufzulösende Instanz.
Diese kann aufgerufen und das Resultat direkt zurückgegeben werden, das entspräche der Implementierung TransientLifecycle, die in LightCore schon eingebaut ist.

Registration Module

Die Xml-Registrierung von LightCore enthält eine RegistrationModule Implementierung, die es ermöglicht, die Daten aus der Xml-Datei mit einer Nachberarbeitung zu registrieren.

Die abstrakte Klasse für ein neues RegistrationModule ist einfach gehalten:

        
            /// <summary>
            /// Represents an abstract registration module for implementing custom registrations.
            /// </summary>
            public abstract class RegistrationModule
            {
                /// <summary>
                /// Registers all candidates.
                /// </summary>
                /// <param name="containerBuilder">The ContainerBuilder.</param>
                public abstract void Register(IContainerBuilder containerBuilder);
            }
        
    

LightCore ruft die Register()-Methode auf, wenn das Modul bekannt gemacht worden ist.

Einer Implementierung von RegistrationModule könnte beispielsweise eine Erweiterung darstellen, um Registrierungen über Konventionen zum Teil automatisieren kann.