首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Roslyn语义分析

Roslyn语义分析
EN

Stack Overflow用户
提问于 2013-07-09 19:13:44
回答 1查看 990关注 0票数 1

我有一个很大的问题,Roslyn.NET CTP和语义分析我的代码。

我的任务是:获取类声明和他继承的类型。

例如:

类: Change : ChangePassword

我必须在控制台中写下:"ChangePassword“类型名称。

我该怎么做呢?在反射中非常简单:(这是一个泛型类型):

代码语言:javascript
运行
复制
foreach (Type t in types)
        {
            if (t.BaseType.IsGenericType)
            {
                Type[] typeArguments = t.BaseType.GetGenericArguments();

                foreach (Type tParam in typeArguments)
                {
                    typesList.Add(tParam.Name);
                    typesListProperties = tParam.GetProperties();

                    foreach (var p in typesListProperties)
                        typesListPropertiesList.Add(p.Name);                     
                }

            }

        }

但是我的问题需要使用roslyn。我的想法是使用semanticModel.GetTypeInfo或GetSymbolInfo,但它们都不接受参数SyntaxNode!

我的现实类声明是:

代码语言:javascript
运行
复制
public partial class Example : System.Web.Mvc.WebViewPage<ExampleModel>

对于本例,我必须在List<string>中添加"ExampleModel“。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-09 22:55:42

看一下如何使用SemanticModel.GetDeclaredSymbol(ClassDeclarationSyntax)来确定您的类型的Symbol,然后检查BaseType属性。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17546787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档