में पहचानकर्ता मुझे यह कैसे मिल सकता है कि स्रोत फ़ाइल में कौन सी पंक्ति संख्या घोषणा मिली थी?विज़िट क्लास डिस्क्लेरेशन नोड। Roslyn
5
A
उत्तर
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
संपत्ति सीधे।
मुझे पता है कि यह एक लंबी पूंछ परियोजना है, लेकिन क्या ऑनलाइन दस्तावेज़ीकरण का एक लिंक है? – casperOne
हमारे पास अभी तक एमएसडीएन प्रारूप में प्रलेखन नहीं है। निकटतम हम इस समय है http://msdn.com/roslyn –
पर विभिन्न दस्तावेजों यहां 'सार्वजनिक वर्ग MyVisitor मैं StartLinePosition नहीं दिख रहा है कर रहे हैं: SyntaxRewriter { संरक्षित ओवरराइड SyntaxNode VisitClassDeclaration (ClassDeclarationSyntax नोड) { कंसोल। राइटलाइन (node.Identifier.ValueText); वापसी शून्य; } } ' –