You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
}
|