2011-10-26 12 views

Respuesta

5

Descargo de responsabilidad: Trabajo para Microsoft en el equipo de Roslyn.

Puede usar el método ISyntaxTree.GetLineSpan() para convertir a un número de línea. Por ejemplo, dado un "símbolo" ISymbol, se puede obtener la ubicación de inicio de la primera definición con:

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

Desde el título, parece que usted está comenzando con un SyntaxNode, por lo que sólo puede utilizar el Span propiedad directamente.

+0

Sé que es un proyecto de larga cola, pero ¿hay un enlace a la documentación en línea? – casperOne

+0

Aún no tenemos la documentación en el formato MSDN. El más cercano que tenemos en este momento son los diversos documentos arriba en http://msdn.com/roslyn –

+0

no veo la StartLinePosition aquí 'MyVisitor clase pública: SyntaxRewriter { protected override SyntaxNode VisitClassDeclaration (nodo ClassDeclarationSyntax) { Console.WriteLine (node.Identifier.ValueText); return null; } } ' –

Cuestiones relacionadas