Class SingleDecoratorProvider<TDecorated, TDecorator, TAttribute>
Inheritance
SingleDecoratorProvider<TDecorated, TDecorator, TAttribute>
Syntax
public abstract class SingleDecoratorProvider<TDecorated, TDecorator, TAttribute>
where TAttribute : Attribute, IDecoratorAttribute
Type Parameters
Name |
Description |
TDecorated |
|
TDecorator |
|
TAttribute |
|
Constructors
SingleDecoratorProvider()
Declaration
protected SingleDecoratorProvider()
Fields
decorateds
Declaration
protected readonly Dictionary<TDecorator, TDecorated> decorateds
Field Value
Type |
Description |
Dictionary<TDecorator, TDecorated> |
|
decorators
Declaration
protected readonly Dictionary<TDecorated, TDecorator> decorators
Field Value
Type |
Description |
Dictionary<TDecorated, TDecorator> |
|
definedDecoratorTypes
Declaration
protected readonly Dictionary<Type, Type> definedDecoratorTypes
Field Value
instancesLock
Declaration
protected readonly object instancesLock
Field Value
resolvedDecoratorTypes
Declaration
protected readonly Dictionary<Type, Type> resolvedDecoratorTypes
Field Value
typesLock
Declaration
protected readonly object typesLock
Field Value
Properties
cache
Declaration
protected abstract bool cache { get; }
Property Value
freeInterval
Declaration
protected virtual TimeSpan freeInterval { get; }
Property Value
typeset
Declaration
protected virtual IEnumerable<Type> typeset { get; }
Property Value
Methods
CreateDecorator(Type, TDecorated)
Declaration
protected virtual TDecorator CreateDecorator(Type decoratorType, TDecorated decorated)
Parameters
Type |
Name |
Description |
Type |
decoratorType |
|
TDecorated |
decorated |
|
Returns
Type |
Description |
TDecorator |
|
Free(TDecorator)
Declaration
public void Free(TDecorator decorator)
Parameters
Type |
Name |
Description |
TDecorator |
decorator |
|
Free(IEnumerable<TDecorator>)
Declaration
public void Free(IEnumerable<TDecorator> decorators)
Parameters
Type |
Name |
Description |
IEnumerable<TDecorator> |
decorators |
|
FreeAll()
Declaration
FreeInvalid()
Declaration
public void FreeInvalid()
GetDecoratedType(TDecorated)
Declaration
protected virtual Type GetDecoratedType(TDecorated decorated)
Parameters
Type |
Name |
Description |
TDecorated |
decorated |
|
Returns
GetDecorator(TDecorated)
Declaration
public TDecorator GetDecorator(TDecorated decorated)
Parameters
Type |
Name |
Description |
TDecorated |
decorated |
|
Returns
Type |
Description |
TDecorator |
|
GetDecorator<T>(TDecorated)
Declaration
public T GetDecorator<T>(TDecorated decorated)
where T : TDecorator
Parameters
Type |
Name |
Description |
TDecorated |
decorated |
|
Returns
Type Parameters
GetDecoratorType(Type)
Declaration
public Type GetDecoratorType(Type decoratedType)
Parameters
Type |
Name |
Description |
Type |
decoratedType |
|
Returns
HasDecorator(Type)
Declaration
public bool HasDecorator(Type decoratedType)
Parameters
Type |
Name |
Description |
Type |
decoratedType |
|
Returns
IsValid(TDecorated)
Declaration
public abstract bool IsValid(TDecorated decorated)
Parameters
Type |
Name |
Description |
TDecorated |
decorated |
|
Returns
Renew<TSpecificDecorator>(ref TSpecificDecorator, TDecorated, Func<TDecorated, TSpecificDecorator>)
Declaration
public void Renew<TSpecificDecorator>(ref TSpecificDecorator decorator, TDecorated decorated, Func<TDecorated, TSpecificDecorator> constructor = null)
where TSpecificDecorator : TDecorator
Parameters
Type |
Name |
Description |
TSpecificDecorator |
decorator |
|
TDecorated |
decorated |
|
Func<TDecorated, TSpecificDecorator> |
constructor |
|
Type Parameters
Name |
Description |
TSpecificDecorator |
|
ResolveDecoratorType(Type)
Declaration
protected virtual Type ResolveDecoratorType(Type decoratedType)
Parameters
Type |
Name |
Description |
Type |
decoratedType |
|
Returns
ResolveDecoratorTypeByHierarchy(Type, Boolean)
Declaration
protected Type ResolveDecoratorTypeByHierarchy(Type decoratedType, bool inherit = true)
Parameters
Type |
Name |
Description |
Type |
decoratedType |
|
Boolean |
inherit |
|
Returns
TryGetDecoratorType(Type, out Type)
Declaration
public bool TryGetDecoratorType(Type decoratedType, out Type decoratorType)
Parameters
Type |
Name |
Description |
Type |
decoratedType |
|
Type |
decoratorType |
|
Returns
Extension Methods