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