2011-10-26 13 views

答えて

5

免責事項:私はMicrosoftのRoslynチームで働いています。

ISyntaxTree.GetLineSpan()メソッドを使用して、行番号に変換することができます。例えば、ISymbol「記号」は、与えられた、あなたが最初の定義の開始位置を取得することができます。タイトルから

var loc = symbol.Locations.First(); 
var lineSpan = loc.SourceTree.GetLineSpan(loc.SourceSpan, 
    usePreprocessorDirectives: false); 
var line = lineSpan.StartLinePosition.Line; 
var character = lineSpan.StartLinePosition.Character; 

、あなたはSyntaxNodeで開始しているように見えますので、あなただけ使用することができます直接プロパティーSpan

+0

私はそれが長いテールのプロジェクトだと知っていますが、オンラインのドキュメントへのリンクはありますか? – casperOne

+0

MSDN形式のドキュメントはまだありません。我々は現時点で持っている最も近い私がStartLinePositionが表示されない、ここで 'パブリッククラスMyVisitor http://msdn.com/roslyn –

+0

で様々な文書まで、次のとおりです。SyntaxRewriter { 保護オーバーライドSyntaxNode VisitClassDeclaration(ClassDeclarationSyntaxノード) { Console.WriteLine(node.Identifier.ValueText); return null; } } ' –

関連する問題