106 lines
3.1 KiB
C#
106 lines
3.1 KiB
C#
|
using System.Collections.Generic;
|
|||
|
|
|||
|
namespace Swan.DependencyInjection {
|
|||
|
/// <summary>
|
|||
|
/// Resolution settings.
|
|||
|
/// </summary>
|
|||
|
public class DependencyContainerResolveOptions {
|
|||
|
/// <summary>
|
|||
|
/// Gets the default options (attempt resolution of unregistered types, fail on named resolution if name not found).
|
|||
|
/// </summary>
|
|||
|
public static DependencyContainerResolveOptions Default { get; } = new DependencyContainerResolveOptions();
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Gets or sets the unregistered resolution action.
|
|||
|
/// </summary>
|
|||
|
/// <value>
|
|||
|
/// The unregistered resolution action.
|
|||
|
/// </value>
|
|||
|
public DependencyContainerUnregisteredResolutionAction UnregisteredResolutionAction { get; set; } = DependencyContainerUnregisteredResolutionAction.AttemptResolve;
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Gets or sets the named resolution failure action.
|
|||
|
/// </summary>
|
|||
|
/// <value>
|
|||
|
/// The named resolution failure action.
|
|||
|
/// </value>
|
|||
|
public DependencyContainerNamedResolutionFailureAction NamedResolutionFailureAction { get; set; } = DependencyContainerNamedResolutionFailureAction.Fail;
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Gets the constructor parameters.
|
|||
|
/// </summary>
|
|||
|
/// <value>
|
|||
|
/// The constructor parameters.
|
|||
|
/// </value>
|
|||
|
public Dictionary<System.String, System.Object> ConstructorParameters { get; } = new Dictionary<System.String, System.Object>();
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Clones this instance.
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public DependencyContainerResolveOptions Clone() => new DependencyContainerResolveOptions {
|
|||
|
NamedResolutionFailureAction = NamedResolutionFailureAction,
|
|||
|
UnregisteredResolutionAction = UnregisteredResolutionAction,
|
|||
|
};
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Defines Resolution actions.
|
|||
|
/// </summary>
|
|||
|
public enum DependencyContainerUnregisteredResolutionAction {
|
|||
|
/// <summary>
|
|||
|
/// Attempt to resolve type, even if the type isn't registered.
|
|||
|
///
|
|||
|
/// Registered types/options will always take precedence.
|
|||
|
/// </summary>
|
|||
|
AttemptResolve,
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Fail resolution if type not explicitly registered
|
|||
|
/// </summary>
|
|||
|
Fail,
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Attempt to resolve unregistered type if requested type is generic
|
|||
|
/// and no registration exists for the specific generic parameters used.
|
|||
|
///
|
|||
|
/// Registered types/options will always take precedence.
|
|||
|
/// </summary>
|
|||
|
GenericsOnly,
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Enumerates failure actions.
|
|||
|
/// </summary>
|
|||
|
public enum DependencyContainerNamedResolutionFailureAction {
|
|||
|
/// <summary>
|
|||
|
/// The attempt unnamed resolution
|
|||
|
/// </summary>
|
|||
|
AttemptUnnamedResolution,
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// The fail
|
|||
|
/// </summary>
|
|||
|
Fail,
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// Enumerates duplicate definition actions.
|
|||
|
/// </summary>
|
|||
|
public enum DependencyContainerDuplicateImplementationAction {
|
|||
|
/// <summary>
|
|||
|
/// The register single
|
|||
|
/// </summary>
|
|||
|
RegisterSingle,
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// The register multiple
|
|||
|
/// </summary>
|
|||
|
RegisterMultiple,
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// The fail
|
|||
|
/// </summary>
|
|||
|
Fail,
|
|||
|
}
|
|||
|
}
|