Пример #1
0
        /// <summary>
        /// Returns an interface mapping for the specified interface type.
        /// If <paramref name="allowPartialInterfaceMapping"/> is set to <c>true</c>, an interface mapping will be returned even if the interface is not
        /// fully implemented. This may occur after calls to <see cref="AddInterface"/>.
        /// </summary>
        /// <param name="interfaceType">The <see cref="Type"/> of the interface of which to retrieve a mapping.</param>
        /// <param name="allowPartialInterfaceMapping">Whether or not to allow partial interface mappings.</param>
        /// <returns></returns>
        public InterfaceMapping GetInterfaceMap(Type interfaceType, bool allowPartialInterfaceMapping)
        {
            ArgumentUtility.CheckNotNull("interfaceType", interfaceType);

            if (IsInterface)
            {
                throw new NotSupportedException("Method GetInterfaceMap is not supported by interface types.");
            }

            Assertion.IsNotNull(BaseType);
            return(_interfaceMappingComputer.ComputeMapping(this, BaseType.GetInterfaceMap, interfaceType, allowPartialInterfaceMapping));
        }