namespace Unosquare.Swan.Components
{
using System.Collections.Generic;
///
/// Resolution settings.
///
public class DependencyContainerResolveOptions
{
///
/// Gets the default options (attempt resolution of unregistered types, fail on named resolution if name not found).
///
public static DependencyContainerResolveOptions Default { get; } = new DependencyContainerResolveOptions();
///
/// Gets or sets the unregistered resolution action.
///
///
/// The unregistered resolution action.
///
public DependencyContainerUnregisteredResolutionActions UnregisteredResolutionAction { get; set; } =
DependencyContainerUnregisteredResolutionActions.AttemptResolve;
///
/// Gets or sets the named resolution failure action.
///
///
/// The named resolution failure action.
///
public DependencyContainerNamedResolutionFailureActions NamedResolutionFailureAction { get; set; } =
DependencyContainerNamedResolutionFailureActions.Fail;
///
/// Gets the constructor parameters.
///
///
/// The constructor parameters.
///
public Dictionary ConstructorParameters { get; } = new Dictionary();
///
/// Clones this instance.
///
///
public DependencyContainerResolveOptions Clone() => new DependencyContainerResolveOptions
{
NamedResolutionFailureAction = NamedResolutionFailureAction,
UnregisteredResolutionAction = UnregisteredResolutionAction,
};
}
///
/// Defines Resolution actions.
///
public enum DependencyContainerUnregisteredResolutionActions
{
///
/// Attempt to resolve type, even if the type isn't registered.
///
/// Registered types/options will always take precedence.
///
AttemptResolve,
///
/// Fail resolution if type not explicitly registered
///
Fail,
///
/// 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.
///
GenericsOnly,
}
///
/// Enumerates failure actions.
///
public enum DependencyContainerNamedResolutionFailureActions
{
///
/// The attempt unnamed resolution
///
AttemptUnnamedResolution,
///
/// The fail
///
Fail,
}
///
/// Enumerates duplicate definition actions.
///
public enum DependencyContainerDuplicateImplementationActions
{
///
/// The register single
///
RegisterSingle,
///
/// The register multiple
///
RegisterMultiple,
///
/// The fail
///
Fail,
}
}