के साथ एक घोषणा के सिंस्क्सैक्स का नामस्थान कैसे प्राप्त करें मेरे पास एक सी # समाधान है जिसमें कुछ क्लास फ़ाइलें हैं। Roslyn के साथ मैं समाधान के भीतर परियोजनाओं की एक सूची प्राप्त करने के लिए एक समाधान का विश्लेषण करने में सक्षम हूँ। वहां से, मैं प्रत्येक परियोजना में दस्तावेज प्राप्त कर सकता हूं। फिर, मैं प्रत्येक क्लासडेक्लेरेशन सिंटैक्स की एक सूची प्राप्त कर सकता हूं। यह शुरुआती बिंदु है।रोज़लिन: Roslyn C#
foreach (var v in _solution.Projects)
{
//Console.WriteLine(v.Name.ToString());
foreach (var document in v.Documents)
{
SemanticModel model = document.GetSemanticModelAsync().Result;
var classes = document.GetSyntaxRootAsync().Result.DescendantNodes().OfType<ClassDeclarationSyntax>();
foreach(var cl in classes)
{
// Starting around this point...
ClassDiagramClass cls = new ClassDiagramClass(cl, model);
diagramClasses.Add(cls);
}
}
}
इन वस्तुओं मैं प्रत्येक वर्ग के भीतर इस्तेमाल चर के नाम स्थान प्राप्त करने में सक्षम होना चाहता हूँ से
। फ़ाइल 1 में एक विधि "getBar()" है जो बी.बार के प्रकार का ऑब्जेक्ट देता है। नामस्थान महत्वपूर्ण है क्योंकि यह आपको बताता है कि किस प्रकार का बार वास्तव में वापस किया जा रहा है।
File1.cs
using B;
namespace A {
public class foo(){
public Bar getBar(){ return new Bar();}
}
}
File2.cs
namespace B {
public class Bar(){
}
}
File3.cs
namespace C {
public class Bar(){
}
}
मुद्दा है कि मुझे यकीन है कि ज नहीं कर रहा हूँ नामस्थान मूल्य पर जाने के लिए ओउ, जहां से मैं अभी कोड में हूं। कोई विचार?
आप 'होना चाहिए उन कॉल await'ing। – SLaks
नेस्टेड प्रकारों से सावधान रहें। – SLaks