Да, есть.Я полагаю, что эти две строки должны работать в вашем коде:
var containingAssembly = enclosingSymbol.ContainingAssembly;
var containingAssemblyName = containingAssembly.Name;
ConistingAssembly содержит информацию об имени сборки, расположении и т. Д.Вы можете поставить точку останова и проверить ее.
Если это не работает, ниже приведен код, который я использую для той же цели, который работает нормально:
private void AnalyzeNode(SyntaxNodeAnalysisContext context)
{
var invocationExpr = (InvocationExpressionSyntax)context.Node;
var memberAccessExpr = invocationExpr.Expression as MemberAccessExpressionSyntax;
var memberSymbol = context.SemanticModel.GetSymbolInfo(memberAccessExpr).Symbol as IMethodSymbol;
var namespace= memberSymbol?.ContainingNamespace;
var assemblyName = memberSymbol?.ContainingAssembly;
}