Пример #1
0
            private bool SetUpTypesFrom(
                IFieldSymbol fieldType)
            {
                WrapperType = TypeEnumFromType(fieldType.Type.Name);

                if (!(fieldType.Type is INamedTypeSymbol))
                {
                    return(false);
                }

                var namedFieldType = fieldType.Type as INamedTypeSymbol;

                GenericArguments = namedFieldType.TypeArguments.ToList();

                if (GenericArguments.Count > 1)
                {
                    WrappedType = GenericArguments[1];
                }

                var innerTypeName = GenericArguments.Last().Name;

                SetUpTypesFrom(innerTypeName);

                return(true);
            }
            private bool SetUpTypesFrom(
                TypeDefinition fieldType,
                GenericInstanceType genericInstance)
            {
                var plainGenericType = ExtractPlainGenericTypeName(fieldType.Name);

                WrapperType = TypeEnumFromType(plainGenericType);

                GenericArguments = genericInstance.GenericArguments.ToList();

                if (GenericArguments.Count > 1)
                {
                    WrappedType = GenericArguments[1];
                }

                var innerTypeName = GenericArguments.Last().Name;

                SetUpTypesFrom(innerTypeName);

                return(true);
            }