C# 클래스 Castle.MicroKernel.Handlers.AbstractHandler.AbstractHandler

상속: System.MarshalByRefObject, IHandler, IExposeDependencyInfo, IDisposable
파일 보기 프로젝트 열기: 7digital/Castle.Windsor

보호된 프로퍼티들

프로퍼티 타입 설명
lifestyleManager ILifestyleManager

공개 메소드들

메소드 설명
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

보호된 메소드들

메소드 설명
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

비공개 메소드들

메소드 설명
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[]

메소드 상세

AbstractHandler() 보호된 메소드

Constructs and initializes the handler
protected AbstractHandler ( ComponentModel model ) : System
model Castle.Core.ComponentModel
리턴 System

AddCustomDependencyValue() 공개 메소드

public AddCustomDependencyValue ( object key, object value ) : void
key object
value object
리턴 void

AddDependency() 보호된 메소드

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
리턴 void

CanResolve() 공개 메소드

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
리턴 bool

CanSatisfyConstructor() 보호된 메소드

protected CanSatisfyConstructor ( ConstructorCandidate constructor ) : bool
constructor Castle.Core.ConstructorCandidate
리턴 bool

CanSatisfyDependency() 보호된 메소드

protected CanSatisfyDependency ( DependencyModel dependency ) : bool
dependency Castle.Core.DependencyModel
리턴 bool

CreateLifestyleManager() 보호된 메소드

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
리턴 ILifestyleManager

DependencySatisfied() 보호된 메소드

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
리턴 void

Dispose() 공개 메소드

public Dispose ( ) : void
리턴 void

EnsureDependenciesCanBeSatisfied() 보호된 메소드

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
리턴 void

HasCustomParameter() 공개 메소드

public HasCustomParameter ( object key ) : bool
key object
리턴 bool

Init() 공개 메소드

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
리턴 void

IsBeingResolvedInContext() 공개 메소드

public IsBeingResolvedInContext ( CreationContext context ) : bool
context CreationContext
리턴 bool

ObtainDependencyDetails() 공개 메소드

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

OnAddedAsChildKernel() 보호된 메소드

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
리턴 void

Release() 공개 메소드

disposes the component instance (or recycle it).
public Release ( object instance ) : bool
instance object
리턴 bool

ReleaseCore() 공개 추상적인 메소드

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

RemoveCustomDependencyValue() 공개 메소드

public RemoveCustomDependencyValue ( object key ) : void
key object
리턴 void

Resolve() 공개 메소드

Returns an instance of the component this handler is responsible for
public Resolve ( CreationContext context ) : object
context CreationContext
리턴 object

Resolve() 공개 메소드

public Resolve ( CreationContext context, ISubDependencyResolver contextHandlerResolver, ComponentModel model, DependencyModel dependency ) : object
context CreationContext
contextHandlerResolver ISubDependencyResolver
model ComponentModel
dependency DependencyModel
리턴 object

Resolve() 보호된 메소드

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
리턴 object

ResolveCore() 보호된 추상적인 메소드

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.
리턴 object

SetNewState() 보호된 메소드

protected SetNewState ( HandlerState newState ) : void
newState HandlerState
리턴 void

TryResolve() 공개 메소드

public TryResolve ( CreationContext context ) : object
context CreationContext
리턴 object

프로퍼티 상세

lifestyleManager 보호되어 있는 프로퍼티

Lifestyle manager instance
protected ILifestyleManager lifestyleManager
리턴 ILifestyleManager