using System; namespace ZeroLevel.Patterns.DependencyInjection { /// /// Тип аргумента конструктора в контексте иньекции зависимостей /// internal enum ConstructorParameterKind { /// /// Аргумент задается из переданных значений /// None, /// /// Аргумент задается из параметров контейнера /// Parameter, /// /// Аргумент задается разрешением зависимости /// Resolve } /// /// Метаданные для описания аргумента конструктора /// internal sealed class ConstructorParameter { /// /// Тип аргумента в рамках DI /// public ConstructorParameterKind ParameterKind; /// /// Тип для определения аргумента через DI /// public Type ParameterResolveType; /// /// Имя для определения аргумента через DI /// public string ParameterResolveName; /// /// Флаг определяющий допустимость записи null в качестве значения аргумента /// public bool IsNullable; /// /// Тип аргумента /// public Type Type; } }