【问题标题】:Roslyn semantic analysisRoslyn 语义分析
【发布时间】:2013-07-09 22:55:42
【问题描述】:

我对 Roslyn.NET CTP 和我的代码进行语义分析有一个大问题。
我的任务是:获取类声明和他继承的类型。
例如:
类:更改:更改密码
我必须在控制台中写:“ChangePassword”类型名称。
我怎样才能做到这一点?在反射中很简单:(这是一个泛型类型):

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!

我的现实类声明是:

public partial class Example : System.Web.Mvc.WebViewPage<ExampleModel>

对于这个例子,我必须添加到List&lt;string&gt;“ExampleModel”。

【问题讨论】:

    标签: c# roslyn


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-24
      • 1970-01-01
      • 2012-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-27
      相关资源
      最近更新 更多