我有一个很大的问题,Roslyn.NET CTP和语义分析我的代码。
我的任务是:获取类声明和他继承的类型。
例如:
类: Change : ChangePassword
我必须在控制台中写下:"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<string>
中添加"ExampleModel“。
发布于 2013-07-09 22:55:42
看一下如何使用SemanticModel.GetDeclaredSymbol(ClassDeclarationSyntax)
来确定您的类型的Symbol
,然后检查BaseType
属性。
https://stackoverflow.com/questions/17546787
复制相似问题