c# - 如何从 MethodDeclarationSyntax 对象中获取程序集名称
问题描述
使用 Roslyn 我得到了这样的公共方法:
var semanticModel = file.GetSemanticModelAsync().Result;
var classParser = new ClassParser(semanticModel);
var tree = file.GetSyntaxTreeAsync().Result;
var methodDeclarations = tree.GetRoot().DescendantNodes()
.OfType<MethodDeclarationSyntax>()
.Where(method => method.Modifiers.Any(modifier => modifier.Kind() == SyntaxKind.PublicKeyword)).ToList();
如何从 MethodDeclarationSyntax 对象中获取程序集名称?
解决方案
由于您已经有了语义模型,您可以在其中查询符号。这些符号引用了有关它们所包含的程序集的信息:
foreach (MethodDeclarationSyntax method in methodDeclarations)
{
var symbol = semanticModel.GetEnclosingSymbol(method.SpanStart);
var assembly = symbol.ContainingAssembly;
var assemblyName = assembly.Identity.Name;
}
推荐阅读
- ios - 动画 UIImageView 从圆角右上角开始并以矩形结束
- database - Mongodb不使用对象数组的索引
- sql - CHARINDEX - 从 nvarchar 中挑选日期
- html - minmax 行为,灵活的 CSS 网格
- python - 如何计算MongoDB中数组中的对象?
- machine-learning - 学习损失权重,因为它们是参数
- java - 如何使用 Micronaut 框架在 Redis 中存储 POJO?
- typescript - 打字稿:赋值表达式中类型注释后的问号(可空类型?)
- swift - 我该如何解决这个错误:无法识别的选择器发送到实例(LongPress onUIImageView)
- angular - 如何使用 v10 SDK 将图像上传到 Azure Blob 存储?