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); } } }
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); }
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); }
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); }
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; }
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); }