PageRenderTime 60ms CodeModel.GetById 57ms app.highlight 1ms RepoModel.GetById 1ms app.codeStats 0ms

/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
 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}