Alba.Jaml.XamlGeneration.XamlGenerator.GetPropertyItemType C# (CSharp) Метод

GetPropertyItemType() приватный Метод

Get types of objects contained in property: type of property for simple property, T for IEnumerable, TValue for IDictionary.
private GetPropertyItemType ( Type objType, string propName ) : Type
objType System.Type
propName string
Результат System.Type
        private Type GetPropertyItemType (Type objType, string propName)
        {
            Type propType = GetPropertyType(objType, propName);
            if (propType == null)
                return null;
            Type enumType = GetGenericInterface(propType, typeof(IEnumerable<>));
            Type itemType = null;
            if (enumType != null)
                itemType = enumType.GetGenericArguments()[0]; // T
            else {
                var dicType = GetGenericInterface(propType, typeof(IDictionary<,>));
                if (dicType != null)
                    itemType = dicType.GetGenericArguments()[1]; // TValue
            }
            if (itemType != null) {
                if (DefaultItemTypes.ContainsKey(itemType))
                    itemType = DefaultItemTypes[itemType];
                return itemType;
            }
            if (IsTypeDictionary(propType))
                return null;
            return propType;
        }