using System; namespace ZeroLevel.Patterns.DependencyInjection { /// <summary> /// Constructor argument type /// </summary> internal enum ConstructorParameterKind { /// <summary> /// Constant /// </summary> None, /// <summary> /// DI parameter /// </summary> Parameter, /// <summary> /// Dependency /// </summary> Dependency } /// <summary> /// Constructor argument metadata /// </summary> internal sealed class ConstructorParameter { /// <summary> /// Argument DI-type /// </summary> public ConstructorParameterKind ParameterKind; /// <summary> /// Argument contract type /// </summary> public Type ParameterResolveType; /// <summary> /// Dependency name /// </summary> public string ParameterResolveName; /// <summary> /// Allow null /// </summary> public bool IsNullable; /// <summary> /// Argument CLR type /// </summary> public Type Type; } }