/// <summary> /// Initializes a new instance of the <see cref="GenericParameterMapper"/> class. /// </summary> /// <param name="type">A constructed generic type, open or closed.</param> /// <param name="parent">The parent mapper, or <see langword="null"/>.</param> public GenericParameterMapper(Type type, GenericParameterMapper parent) { Guard.ArgumentNotNull(type, "type"); if (type.IsGenericType) { if (type.IsGenericTypeDefinition) { throw new ArgumentException(Resources.ExceptionCannotMapGenericTypeDefinition, "type"); } _parent = parent; _localMappings = CreateMappings( type.GetGenericTypeDefinition().GetGenericArguments(), type.GetGenericArguments()); } else { _localMappings = EmptyMappings; _parent = null; } }
/// <summary> /// Initializes a new instance of the <see cref="GenericParameterMapper"/> class. /// </summary> /// <param name="reflectedParameters">The reflected generic parameters.</param> /// <param name="generatedParameters">The generated generic parameters.</param> /// <param name="parent">The parent mapper, or <see langword="null"/>.</param> public GenericParameterMapper(Type[] reflectedParameters, Type[] generatedParameters, GenericParameterMapper parent) { _parent = parent; _localMappings = CreateMappings(reflectedParameters, generatedParameters); }