public string GetMethodSignatureString(MethodDeclarationSyntax syntax) { StringBuilder stringBuilder = new StringBuilder(); this.AppendMethodIdentifier(syntax, stringBuilder); MemberNameResolver.AppendTypeParameters(syntax, stringBuilder); this.AppendParameters(syntax, stringBuilder); this.AppendReturnType(syntax, stringBuilder); return(stringBuilder.ToString()); }
private void AppendReturnType(PropertyDeclarationSyntax syntax, StringBuilder builder) { SemanticModel semanticModel = this.semanticModel; TypeSyntax type = syntax.Type; CancellationToken cancellationToken = new CancellationToken(); SymbolInfo symbolInfo = ModelExtensions.GetSymbolInfo(semanticModel, (SyntaxNode)type, cancellationToken); ITypeSymbol symbol = symbolInfo.Symbol as ITypeSymbol; ITypeSymbol typeSymbol = symbol; if (symbol != null) { builder.AppendFormat(" : {0}", MemberNameResolver.ResolveTypeName(typeSymbol)); } }
public IEnumerable <MemberNode> GetMembers(SemanticModel semanticModel, TypeDeclarationSyntaxInfo type) { this.Visit(type.Syntax); MemberNameResolver memberNameResolver = new MemberNameResolver(semanticModel); this.members.ForEach <MemberNode>((MemberNode x) => { string str; memberNameResolver.TryResolveMemberSignatureString(x, out str); x.DisplayName = str; x.CodeFile = type.CodeFile; x.LineNumber = x.SyntaxNode.GetLineNumber(); }); return(this.members.ToList <MemberNode>().AsReadOnly()); }
private void AppendParameters(EventDeclarationSyntax syntax, StringBuilder builder) { builder.Append("("); SemanticModel semanticModel = this.semanticModel; TypeSyntax type = syntax.Type; CancellationToken cancellationToken = new CancellationToken(); SymbolInfo symbolInfo = ModelExtensions.GetSymbolInfo(semanticModel, (SyntaxNode)type, cancellationToken); ITypeSymbol symbol = symbolInfo.Symbol as ITypeSymbol; ITypeSymbol typeSymbol = symbol; if (symbol != null) { builder.Append(MemberNameResolver.ResolveTypeName(typeSymbol)); } builder.Append(")"); }
private void AppendParameters(BaseMethodDeclarationSyntax syntax, StringBuilder builder) { builder.Append("("); ParameterListSyntax parameterList = syntax.ParameterList; if (parameterList != null) { SeparatedSyntaxList <ParameterSyntax> parameters = parameterList.Parameters; if (parameters.Any()) { string str2 = string.Join(", ", ((IEnumerable <ParameterSyntax>)parameters).Select <ParameterSyntax, string>((ParameterSyntax x) => { StringBuilder stringBuilder = new StringBuilder(); string str = string.Join(" ", ( from m in (IEnumerable <SyntaxToken>)x.Modifiers select m.ValueText).ToArray <string>()); if (!string.IsNullOrEmpty(str)) { stringBuilder.Append(str); stringBuilder.Append(" "); } SemanticModel semanticModel = this.semanticModel; TypeSyntax type = x.Type; CancellationToken cancellationToken = new CancellationToken(); ITypeSymbol symbol = ModelExtensions.GetSymbolInfo(semanticModel, (SyntaxNode)type, cancellationToken).Symbol as ITypeSymbol; ITypeSymbol typeSymbol = symbol; if (symbol == null) { return("?"); } string str1 = MemberNameResolver.ResolveTypeName(typeSymbol); if (!string.IsNullOrWhiteSpace(str1)) { stringBuilder.Append(str1); } return(stringBuilder.ToString()); })); builder.Append(str2); } } builder.Append(")"); }