/src/LinFu.Reflection/Interfaces/IAssemblyTargetLoader.cs
C# | 49 lines | 15 code | 4 blank | 30 comment | 0 complexity | e3eaa5cb205bd1eb7d9bcfe085c2778b MD5 | raw file
1using System; 2using System.Collections.Generic; 3 4namespace LinFu.Reflection 5{ 6 /// <summary> 7 /// Represents a specific <see cref="IActionLoader{TTarget, TInput}" /> 8 /// type that can load configuration information from an assembly 9 /// and apply it to a <typeparamref name="TTarget" /> instance. 10 /// </summary> 11 /// <typeparam name="TTarget">The target type to configure.</typeparam> 12 /// <typeparam name="TAssembly">The assembly type.</typeparam> 13 /// <typeparam name="TType">The input type.</typeparam> 14 public interface IAssemblyTargetLoader<TTarget, TAssembly, TType> : IActionLoader<TTarget, string> 15 { 16 /// <summary> 17 /// The <see cref="IAssemblyLoader" /> instance that will load 18 /// the target assemblies. 19 /// </summary> 20 IAssemblyLoader<TAssembly> AssemblyLoader { get; set; } 21 22 /// <summary> 23 /// The list of ActionLoaders that will be used to 24 /// configure the target. 25 /// </summary> 26 IList<IActionLoader<TTarget, TType>> TypeLoaders { get; } 27 } 28 29 /// <summary> 30 /// Represents a specific <see cref="IActionLoader{TTarget, TInput}" /> 31 /// type that can load configuration information from an assembly 32 /// and apply it to a <typeparamref name="TTarget" /> instance. 33 /// </summary> 34 /// <typeparam name="TTarget">The target type to configure.</typeparam> 35 public interface IAssemblyTargetLoader<TTarget> 36 { 37 /// <summary> 38 /// The <see cref="IAssemblyLoader" /> instance that will load 39 /// the target assemblies. 40 /// </summary> 41 IAssemblyLoader AssemblyLoader { get; set; } 42 43 /// <summary> 44 /// The list of ActionLoaders that will be used to 45 /// configure the target. 46 /// </summary> 47 IList<IActionLoader<TTarget, Type>> TypeLoaders { get; } 48 } 49}