C# Class Castle.MicroKernel.Handlers.AbstractHandler.AbstractHandler

Inheritance: System.MarshalByRefObject, IHandler, IExposeDependencyInfo, IDisposable
Afficher le fichier Open project: 7digital/Castle.Windsor

Protected Properties

Свойство Type Description
lifestyleManager ILifestyleManager

Méthodes publiques

Méthode Description
AddCustomDependencyValue ( object key, object value ) : void
CanResolve ( CreationContext context, ISubDependencyResolver contextHandlerResolver, ComponentModel model, DependencyModel dependency ) : bool
Dispose ( ) : void
HasCustomParameter ( object key ) : bool
Init ( IKernel kernel ) : void

Saves the kernel instance, subscribes to IKernelEvents.AddedAsChildKernel event, creates the lifestyle manager instance and computes the handler state.

IsBeingResolvedInContext ( CreationContext context ) : bool
ObtainDependencyDetails ( IList dependenciesChecked ) : String

Returns human readable list of dependencies this handler is waiting for.

Release ( object instance ) : bool

disposes the component instance (or recycle it).

ReleaseCore ( object instance ) : bool

Should be implemented by derived classes: disposes the component instance (or recycle it)

RemoveCustomDependencyValue ( object key ) : void
Resolve ( CreationContext context ) : object

Returns an instance of the component this handler is responsible for

Resolve ( CreationContext context, ISubDependencyResolver contextHandlerResolver, ComponentModel model, DependencyModel dependency ) : object
TryResolve ( CreationContext context ) : object

Méthodes protégées

Méthode Description
AbstractHandler ( ComponentModel model ) : System

Constructs and initializes the handler

AddDependency ( DependencyModel dependency ) : void

Invoked by EnsureDependenciesCanBeSatisfied in order to check if a dependency can be satisfied. If not, the handler is set to a 'waiting dependency' state.

This method registers the dependencies within the correct collection or dictionary and changes the handler state to HandlerState.WaitingDependency

CanSatisfyConstructor ( ConstructorCandidate constructor ) : bool
CanSatisfyDependency ( DependencyModel dependency ) : bool
CreateLifestyleManager ( IComponentActivator activator ) : ILifestyleManager

Creates an implementation of ILifestyleManager based on LifestyleType and invokes ILifestyleManager.Init to initialize the newly created manager.

DependencySatisfied ( bool &stateChanged ) : void

Invoked by the kernel when one of registered dependencies were satisfied by new components registered.

Handler for the event IKernelEvents.HandlerRegistered

EnsureDependenciesCanBeSatisfied ( IDependencyAwareActivator activator ) : void

Checks if the handler is able to, at very least, satisfy the dependencies for the constructor with less parameters

For each non*optional dependency, the implementation will invoke AddDependency

OnAddedAsChildKernel ( object sender, EventArgs e ) : void

Invoked when the container receives a parent container reference.

This method implementation checks whether the parent container is able to supply the dependencies for this handler.

Resolve ( CreationContext context, bool instanceRequired ) : object

Returns an instance of the component this handler is responsible for

ResolveCore ( CreationContext context, bool requiresDecommission, bool instanceRequired ) : object

Should be implemented by derived classes: returns an instance of the component this handler is responsible for

SetNewState ( HandlerState newState ) : void

Private Methods

Méthode Description
AddGraphDependency ( IHandler handler ) : void
DisconnectEvents ( ) : void
GetBestCandidatesByDependencyType ( IEnumerable candidates ) : List
GetCandidateConstructors ( ) : IEnumerable
GetSecuredDependencies ( ) : IEnumerable
HandlerStateChanged ( object source, EventArgs args ) : void

Handler for the event OnHandlerStateChanged

HasValidComponent ( String key, DependencyModel dependency ) : bool
HasValidComponent ( Type service, DependencyModel dependency ) : bool
HasValidComponentFromResolver ( DependencyModel dependency ) : bool
InitializeCustomDependencies ( ) : void
IsValidHandlerState ( IHandler handler ) : bool
RaiseHandlerStateChanged ( ) : void
SelectMostValuableCandidate ( IEnumerable candidates ) : ConstructorCandidate
SelectMostValuableCandidateByName ( IEnumerable candidates ) : ConstructorCandidate
Union ( ICollection firstset, ICollection secondset ) : DependencyModel[]

Method Details

AbstractHandler() protected méthode

Constructs and initializes the handler
protected AbstractHandler ( ComponentModel model ) : System
model Castle.Core.ComponentModel
Résultat System

AddCustomDependencyValue() public méthode

public AddCustomDependencyValue ( object key, object value ) : void
key object
value object
Résultat void

AddDependency() protected méthode

Invoked by EnsureDependenciesCanBeSatisfied in order to check if a dependency can be satisfied. If not, the handler is set to a 'waiting dependency' state.
This method registers the dependencies within the correct collection or dictionary and changes the handler state to HandlerState.WaitingDependency
protected AddDependency ( DependencyModel dependency ) : void
dependency Castle.Core.DependencyModel
Résultat void

CanResolve() public méthode

public CanResolve ( CreationContext context, ISubDependencyResolver contextHandlerResolver, ComponentModel model, DependencyModel dependency ) : bool
context Castle.MicroKernel.Context.CreationContext
contextHandlerResolver ISubDependencyResolver
model Castle.Core.ComponentModel
dependency Castle.Core.DependencyModel
Résultat bool

CanSatisfyConstructor() protected méthode

protected CanSatisfyConstructor ( ConstructorCandidate constructor ) : bool
constructor Castle.Core.ConstructorCandidate
Résultat bool

CanSatisfyDependency() protected méthode

protected CanSatisfyDependency ( DependencyModel dependency ) : bool
dependency Castle.Core.DependencyModel
Résultat bool

CreateLifestyleManager() protected méthode

Creates an implementation of ILifestyleManager based on LifestyleType and invokes ILifestyleManager.Init to initialize the newly created manager.
protected CreateLifestyleManager ( IComponentActivator activator ) : ILifestyleManager
activator IComponentActivator
Résultat ILifestyleManager

DependencySatisfied() protected méthode

Invoked by the kernel when one of registered dependencies were satisfied by new components registered.
Handler for the event IKernelEvents.HandlerRegistered
protected DependencySatisfied ( bool &stateChanged ) : void
stateChanged bool
Résultat void

Dispose() public méthode

public Dispose ( ) : void
Résultat void

EnsureDependenciesCanBeSatisfied() protected méthode

Checks if the handler is able to, at very least, satisfy the dependencies for the constructor with less parameters
For each non*optional dependency, the implementation will invoke AddDependency
protected EnsureDependenciesCanBeSatisfied ( IDependencyAwareActivator activator ) : void
activator IDependencyAwareActivator
Résultat void

HasCustomParameter() public méthode

public HasCustomParameter ( object key ) : bool
key object
Résultat bool

Init() public méthode

Saves the kernel instance, subscribes to IKernelEvents.AddedAsChildKernel event, creates the lifestyle manager instance and computes the handler state.
public Init ( IKernel kernel ) : void
kernel IKernel
Résultat void

IsBeingResolvedInContext() public méthode

public IsBeingResolvedInContext ( CreationContext context ) : bool
context CreationContext
Résultat bool

ObtainDependencyDetails() public méthode

Returns human readable list of dependencies this handler is waiting for.
public ObtainDependencyDetails ( IList dependenciesChecked ) : String
dependenciesChecked IList
Résultat String

OnAddedAsChildKernel() protected méthode

Invoked when the container receives a parent container reference.
This method implementation checks whether the parent container is able to supply the dependencies for this handler.
protected OnAddedAsChildKernel ( object sender, EventArgs e ) : void
sender object
e EventArgs
Résultat void

Release() public méthode

disposes the component instance (or recycle it).
public Release ( object instance ) : bool
instance object
Résultat bool

ReleaseCore() public abstract méthode

Should be implemented by derived classes: disposes the component instance (or recycle it)
public abstract ReleaseCore ( object instance ) : bool
instance object
Résultat bool

RemoveCustomDependencyValue() public méthode

public RemoveCustomDependencyValue ( object key ) : void
key object
Résultat void

Resolve() public méthode

Returns an instance of the component this handler is responsible for
public Resolve ( CreationContext context ) : object
context CreationContext
Résultat object

Resolve() public méthode

public Resolve ( CreationContext context, ISubDependencyResolver contextHandlerResolver, ComponentModel model, DependencyModel dependency ) : object
context CreationContext
contextHandlerResolver ISubDependencyResolver
model ComponentModel
dependency DependencyModel
Résultat object

Resolve() protected méthode

Returns an instance of the component this handler is responsible for
protected Resolve ( CreationContext context, bool instanceRequired ) : object
context CreationContext
instanceRequired bool when false, handler can not create valid instance and return null instead
Résultat object

ResolveCore() protected abstract méthode

Should be implemented by derived classes: returns an instance of the component this handler is responsible for
protected abstract ResolveCore ( CreationContext context, bool requiresDecommission, bool instanceRequired ) : object
context CreationContext
requiresDecommission bool
instanceRequired bool When false, handler can not create valid instance and return null instead.
Résultat object

SetNewState() protected méthode

protected SetNewState ( HandlerState newState ) : void
newState HandlerState
Résultat void

TryResolve() public méthode

public TryResolve ( CreationContext context ) : object
context CreationContext
Résultat object

Property Details

lifestyleManager protected_oe property

Lifestyle manager instance
protected ILifestyleManager lifestyleManager
Résultat ILifestyleManager