C# 如何使用Roslyn确定XML文档注释中cref的类型?
我有一个文档注释,如:C# 如何使用Roslyn确定XML文档注释中cref的类型?,c#,roslyn,C#,Roslyn,我有一个文档注释,如: /// <summary>This is an xml doc comment <see cref="MyClass" /></summary> ///这是一条xml文档注释 我怎样才能让Roslyn帮我解析这个,并给我确定的MyClass类型?你需要找到与类型名称对应的CrefSyntax节点,然后你可以使用SemanticModel.GetSymbolInfo()来获取你想要的IsSymbol: string code = @"
/// <summary>This is an xml doc comment <see cref="MyClass" /></summary>
///这是一条xml文档注释
我怎样才能让Roslyn帮我解析这个,并给我确定的MyClass类型?你需要找到与类型名称对应的
CrefSyntax
节点,然后你可以使用SemanticModel.GetSymbolInfo()
来获取你想要的IsSymbol
:
string code = @"namespace Foo
{
/// <summary>This is an xml doc comment <see cref=""MyClass"" /></summary>
class MyClass {}
}";
var tree = SyntaxFactory.ParseSyntaxTree(code);
CrefSyntax cref = tree.GetRoot()
.DescendantNodes(descendIntoTrivia: true)
.OfType<CrefSyntax>()
.FirstOrDefault();
var compliation = CSharpCompilation.Create("foo").AddSyntaxTrees(tree);
var model = compliation.GetSemanticModel(tree);
ISymbol symbol = model.GetSymbolInfo(cref).Symbol;
stringcode=@“名称空间Foo
{
///这是一个xml文档注释
类MyClass{}
}";
var tree=SyntaxFactory.ParseSyntaxTree(代码);
CrefSyntax cref=tree.GetRoot()
.DescendantNodes(DescendantoTrivia:true)
第()类
.FirstOrDefault();
var compliation=csharpcomilation.Create(“foo”).AddSyntaxTrees(tree);
var模型=compliation.GetSemanticModel(树);
ISymbol symbol=model.GetSymbolInfo(cref.symbol);