/src/LinFu.Reflection/Interfaces/IAssemblyTargetLoader.cs

http://github.com/philiplaureano/LinFu · C# · 49 lines · 15 code · 4 blank · 30 comment · 0 complexity · e3eaa5cb205bd1eb7d9bcfe085c2778b MD5 · raw file

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