#c# #roslyn
#c# #roslyn
Вопрос:
Используя Roslyn, я получаю общедоступные методы, подобные этому:
var semanticModel = file.GetSemanticModelAsync().Resu<
var classParser = new ClassParser(semanticModel);
var tree = file.GetSyntaxTreeAsync().Resu<
var methodDeclarations = tree.GetRoot().DescendantNodes()
.OfType<MethodDeclarationSyntax>()
.Where(method => method.Modifiers.Any(modifier => modifier.Kind() == SyntaxKind.PublicKeyword)).ToList();
как возможно получить имя сборки из объекта MethodDeclarationSyntax?
Комментарии:
1. Просто любопытно, но зачем вам нужна сборка, в которую это войдет вместо имени файла?
2. Привет @Jlalonde Мне нужно только сохранить имя сборки, и я не буду использовать ни для чего конкретного roslyn.
Ответ №1:
Поскольку у вас уже есть семантическая модель, вы можете запросить у нее символы. Символы содержат ссылки на информацию о сборке, в которой они содержатся:
foreach (MethodDeclarationSyntax method in methodDeclarations)
{
var symbol = semanticModel.GetEnclosingSymbol(method.SpanStart);
var assembly = symbol.ContainingAssembly;
var assemblyName = assembly.Identity.Name;
}