/// <summary> /// Initializes a new instance of the <see cref="TypeBuilder"/> class. /// </summary> /// <param name="typeConstructor">Type constructor</param> /// <param name="typeFilter">Type filter</param> /// <param name="typeParser">Type parser</param> /// <param name="typeResolver">Type resolver</param> public TypeBuilder(ITypeActivator typeActivator, ITypeConstructor typeConstructor, ITypeFilter typeFilter, ITypeParser typeParser, ITypeResolver typeResolver) { Activator = typeActivator ?? throw new ArgumentNullException(nameof(typeActivator)); Constructor = typeConstructor ?? throw new ArgumentNullException(nameof(typeConstructor)); Filter = typeFilter ?? throw new ArgumentNullException(nameof(typeFilter)); Resolver = typeResolver ?? throw new ArgumentNullException(nameof(typeResolver)); Parser = typeParser ?? throw new ArgumentNullException(nameof(typeParser)); }
/// <summary> /// Initializes a new instance of the <see cref="TypeBuilder"/> class. /// </summary> /// <param name="typeConstructor">Type constructor</param> /// <param name="typeFilter">Type filter</param> /// <param name="typeParser">Type parser</param> /// <param name="typeResolver">Type resolver</param> public TypeBuilder(ITypeActivator typeActivator, ITypeConstructor typeConstructor, ITypeFilter typeFilter, ITypeParser typeParser, ITypeResolver typeResolver, ITypeDependencyAttributeProvider typeDependencyAttributeProvider = null, ITypeInjectionAttributeProvider typeInjectionAttributeProvider = null) { DependencyAttributeExtractor = typeDependencyAttributeProvider ?? throw new ArgumentNullException(nameof(typeDependencyAttributeProvider)); InjectionAttributeExtractor = typeInjectionAttributeProvider ?? throw new ArgumentNullException(nameof(typeInjectionAttributeProvider)); Activator = typeActivator ?? throw new ArgumentNullException(nameof(typeActivator)); Constructor = typeConstructor ?? throw new ArgumentNullException(nameof(typeConstructor)); Filter = typeFilter ?? throw new ArgumentNullException(nameof(typeFilter)); Resolver = typeResolver ?? throw new ArgumentNullException(nameof(typeResolver)); Parser = typeParser ?? throw new ArgumentNullException(nameof(typeParser)); }
public static void Register <TValue>(ITypeConstructor <TValue> handler) { Constructor <TValue> .Construct = handler; }
public void Visit <TContainer>() => TypeConstructor = CreateTypeConstructor <TContainer>();