Class MultiDecoratorProvider<TDecorated, TDecorator, TAttribute>
  
  
  
  
    Inheritance
    
    MultiDecoratorProvider<TDecorated, TDecorator, TAttribute>
   
      
      
  Namespace: Ludiq
  
  Syntax
  
    public abstract class MultiDecoratorProvider<TDecorated, TDecorator, TAttribute>
    where TAttribute : Attribute, IRegisterDecoratorAttribute
   
  Type Parameters
  
    
      
        | Name | 
        Description | 
      
    
    
      
        | TDecorated | 
         | 
      
      
        | TDecorator | 
         | 
      
      
        | TAttribute | 
         | 
      
    
  
  Constructors
  
  
  
  
  MultiDecoratorProvider()
  
  
  Declaration
  
    protected MultiDecoratorProvider()
   
  Fields
  
  
  
  definedDecoratorTypes
  
  
  Declaration
  
    protected readonly Dictionary<Type, HashSet<Type>> definedDecoratorTypes
   
  Field Value
  
  Properties
  
  
  
  
  registrationAssemblies
  
  
  Declaration
  
    protected virtual IEnumerable<Assembly> registrationAssemblies { get; }
   
  Property Value
  
  Methods
  
  
  
  
  ClearCache()
  
  
  Declaration
  
    public virtual void ClearCache()
   
  
  
  
  CreateDecorators(TDecorated)
  
  
  Declaration
  
    protected virtual IEnumerable<TDecorator> CreateDecorators(TDecorated decorated)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | TDecorated | 
        decorated | 
         | 
      
    
  
  Returns
  
  
  
  
  DirectResolve(Type)
  
  
  Declaration
  
    protected IEnumerable<Type> DirectResolve(Type type)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | Type | 
        type | 
         | 
      
    
  
  Returns
  
  
  
  
  GenericResolve(Type)
  
  
  Declaration
  
    protected IEnumerable<Type> GenericResolve(Type type)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | Type | 
        type | 
         | 
      
    
  
  Returns
  
  
  
  
  GetDecoratedType(TDecorated)
  
  
  Declaration
  
    protected virtual Type GetDecoratedType(TDecorated decorated)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | TDecorated | 
        decorated | 
         | 
      
    
  
  Returns
  
  
  
  
  GetDecorators(TDecorated)
  
  
  Declaration
  
    public IEnumerable<TDecorator> GetDecorators(TDecorated decorated)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | TDecorated | 
        decorated | 
         | 
      
    
  
  Returns
  
  
  
  
  GetDecorators<TSpecificDecorator>(TDecorated)
  
  
  Declaration
  
    public IEnumerable<TSpecificDecorator> GetDecorators<TSpecificDecorator>(TDecorated decorated)
    where TSpecificDecorator : TDecorator
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | TDecorated | 
        decorated | 
         | 
      
    
  
  Returns
  
  Type Parameters
  
    
      
        | Name | 
        Description | 
      
    
    
      
        | TSpecificDecorator | 
         | 
      
    
  
  
  
  
  GetDecoratorTypes(Type)
  
  
  Declaration
  
    public IEnumerable<Type> GetDecoratorTypes(Type type)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | Type | 
        type | 
         | 
      
    
  
  Returns
  
  
  
  
  HasDecorator(Type)
  
  
  Declaration
  
    public bool HasDecorator(Type type)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | Type | 
        type | 
         | 
      
    
  
  Returns
  
  
  
  
  ResolveDecoratorTypes(Type)
  
  
  Declaration
  
    protected virtual IEnumerable<Type> ResolveDecoratorTypes(Type type)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | Type | 
        type | 
         | 
      
    
  
  Returns
  
  
  
  
  ResolveDecoratorTypesByHierarchy(Type, Boolean)
  
  
  Declaration
  
    protected IEnumerable<Type> ResolveDecoratorTypesByHierarchy(Type type, bool inherit)
   
  Parameters
  
  Returns
  
  
  
  
  ShouldInvalidateDecorators(TDecorated)
  
  
  Declaration
  
    protected virtual bool ShouldInvalidateDecorators(TDecorated decorated)
   
  Parameters
  
    
      
        | Type | 
        Name | 
        Description | 
      
    
    
      
        | TDecorated | 
        decorated | 
         | 
      
    
  
  Returns
  
  Extension Methods