Beispiel #1
0
        /// <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;
            }
        }
Beispiel #2
0
 /// <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);
 }