GetParsedTypeReference() public method

public GetParsedTypeReference ( ITypeSymbol typeSymbol ) : SDTypeRef
typeSymbol ITypeSymbol
return SDTypeRef
Beispiel #1
0
 private void AddParsedBaseType(SDType sdType, INamedTypeSymbol baseType)
 {
     if (baseType != null && baseType.TypeKind != TypeKind.Interface)
     {
         var typeRef = _typeRefParser.GetParsedTypeReference(baseType);
         if (sdType.BaseTypes.SingleOrDefault((i => i.Type.Identifier == typeRef.Type.Identifier)) == null && typeRef.Type.Fullname != "System.Object")
         {
             sdType.BaseTypes.Add(typeRef);
         }
     }
 }
Beispiel #2
0
        private SDField GetParsedField(IFieldSymbol field)
        {
            var sdField = new SDField(field.GetIdentifier())
            {
                Name          = field.Name,
                DeclaringType = _typeRefParser.GetParsedTypeReference(field.ContainingType),
                Accessibility = field.DeclaredAccessibility.ToString().ToLower(),
                ReturnType    = _typeRefParser.GetParsedTypeReference(field.Type),
                ConstantValue = field.ConstantValue != null?field.ConstantValue.ToString() : string.Empty,
                                    IsConst        = field.IsConst,
                                    IsReadonly     = field.IsReadOnly,
                                    Documentations = DocumentationParser.ParseDocumentation(field)
            };

            ParserOptions.SDRepository.AddMember(sdField);
            return(sdField);
        }
Beispiel #3
0
        private SDProperty GetParsedProperty(IPropertySymbol property)
        {
            var sdProperty = new SDProperty(property.GetIdentifier())
            {
                Name           = property.Name,
                DeclaringType  = _typeRefParser.GetParsedTypeReference(property.ContainingType),
                Accessibility  = property.DeclaredAccessibility.ToString().ToLower(),
                ReturnType     = _typeRefParser.GetParsedTypeReference(property.Type),
                CanGet         = property.GetMethod != null,
                CanSet         = property.SetMethod != null,
                IsAbstract     = property.IsAbstract,
                IsVirtual      = property.IsVirtual,
                IsOverride     = property.IsOverride,
                Documentations = DocumentationParser.ParseDocumentation(property)
            };

            ParserOptions.SDRepository.AddMember(sdProperty);
            return(sdProperty);
        }
Beispiel #4
0
        private SDEvent GetParsedEvent(IEventSymbol eve)
        {
            var sdEvent = new SDEvent(eve.GetIdentifier())
            {
                Name           = eve.Name,
                DeclaringType  = _typeRefParser.GetParsedTypeReference(eve.ContainingType),
                Accessibility  = eve.DeclaredAccessibility.ToString().ToLower(),
                Documentations = DocumentationParser.ParseDocumentation(eve)
            };

            ParserOptions.SDRepository.AddMember(sdEvent);
            return(sdEvent);
        }
Beispiel #5
0
        public SDType GetParsedType(TypeRefParser typeRefParser, ITypeSymbol typeSymbol, INamespaceSymbol namespaceSymbol)
        {
            var sdType = ParserOptions.SDRepository.GetTypeByIdentifier(typeSymbol.GetIdentifier());
            if (sdType == null)
            {
                sdType = CreateSDType(typeSymbol, namespaceSymbol);
                ParserOptions.SDRepository.AddType(sdType);

                var namedTypeSymbol = typeSymbol as INamedTypeSymbol;
                if (namedTypeSymbol != null)
                {
                    foreach (var typeArgument in namedTypeSymbol.TypeArguments)
                    {
                        sdType.TypeArguments.Add(typeRefParser.GetParsedTypeReference(typeArgument));
                    }
                }
            }
            return sdType;
        }
Beispiel #6
0
        public SDType GetParsedType(TypeRefParser typeRefParser, ITypeSymbol typeSymbol, INamespaceSymbol namespaceSymbol)
        {
            var sdType = ParserOptions.SDRepository.GetTypeByIdentifier(typeSymbol.GetIdentifier());

            if (sdType == null)
            {
                sdType = CreateSDType(typeSymbol, namespaceSymbol);
                ParserOptions.SDRepository.AddType(sdType);

                var namedTypeSymbol = typeSymbol as INamedTypeSymbol;
                if (namedTypeSymbol != null)
                {
                    foreach (var typeArgument in namedTypeSymbol.TypeArguments)
                    {
                        sdType.TypeArguments.Add(typeRefParser.GetParsedTypeReference(typeArgument));
                    }
                }
            }
            return(sdType);
        }