Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 4
0
        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(")");
        }
Exemplo n.º 5
0
        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(")");
        }