2011-10-26 16 views

उत्तर

5

अस्वीकरण: मैं रोज़लिन टीम पर माइक्रोसॉफ्ट के लिए काम करता हूं।

आप लाइन नंबर में कनवर्ट करने के लिए 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

हमारे पास अभी तक एमएसडीएन प्रारूप में प्रलेखन नहीं है। निकटतम हम इस समय है http://msdn.com/roslyn –

+0

पर विभिन्न दस्तावेजों यहां 'सार्वजनिक वर्ग MyVisitor मैं StartLinePosition नहीं दिख रहा है कर रहे हैं: SyntaxRewriter { संरक्षित ओवरराइड SyntaxNode VisitClassDeclaration (ClassDeclarationSyntax नोड) { कंसोल। राइटलाइन (node.Identifier.ValueText); वापसी शून्य; } } ' –

संबंधित मुद्दे