Hi Folks,
ich möchte gerne meine öffentlichen Methoden, die in einer *.cs Datei sind ausgeben. Gibt es dazu schon etwas fertiges oder hat da jemand eine Idee, wie ich da ran gehen kann, ohne dass ich die Datei selbst parsen muss und Lexer und Lexeme erstellen muss?
Thx
Mario
Hi,
was genau meinst du damit? Innerhalb eines Programmes kannst du per Type.GetMethods ein Array der Methoden bekommen. Type.GetMethods Method
Wenn du allerdings eine *.cs Datei hast, die du einliest, dann musst du dir wohl einen Parser dafür bauen.
Danke dir für deine antwort.
Tut mir leid, dass ich nicht nicht so genau ausgedrückt habe. Und zwar möchte ich mir eine art Autovervollständigung, wie bei VS bauen.
Mir geht es nun nicht um die Textcomplete sondern eher um die Methoden.
zum Beispiel denke ich mir das so aus:
public class MyClass1
{
public int Property1
{
get;
set;
}
public void DoSomething
{
...
}
private void Foo
{
...
}
...
}
nun würde ich folgendes in meiner Textbox schreiben
public class Test
{
public MyClass1 foo = new MyClass1();
foo.(Hier soll dann die Autovervollständigung kommen)
}
Hinter dem "." sollte nun eine Listbox mit den möglichen Methoden und Property angezeigt werden, die die MyClass1 anzubieten hat.
Hat vielleicht schon jemand so etwas selbst geproggt oder gibt es sogar eine fertige Lösung?
Thx
Mario
Hallo,
oder gibt es sogar schon ...fertige Lösung dazu?
Du kannst bei SharpDevelop schauen wie es dort gelöst wurde.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Intellisense
Genau das Wort ist mir entfallen 😉
Bei SharpDevelop gibt es zwar ein Beispiel Sample aber das funktioniert leider nicht, aber der Link von Corpsegrinder war genau das was ich gesucht habe 😃
Dein Link klingt auch interessant...danke
hi,
ich hätte bezüglich der Intellisense noch eine weitere Frage.
Und zwar habe ich nun über die Reflection meine Properties und öffentlichen Methoden heruasgefunden. Jedoch bin ich dabei immer nur von meinem simplen "TestProjekt" ausgegangen.
Ich möchte nun die Reflection dynamisch gestallten. Damit meine ich folgendes.
Der Benutzer gibt in der Textbox, wie schon bereits erwähnt, etwas (sinnvolles) ein:
public class Test2
{
public AnotherClass foo2 = new AnotherClass();
foo2.
}
oder eine Methode
public TestMethode(AnotherClass foo2)
{
foo2.
}
Nun suche ich halt was sich hinter dem "." vergibt ==> "foo2". Danach suche ich nach dem Typ, zu dem foo2 gehört und bekomme "AnotherClass".
Gibt es nun die Möglichkeit den string ("AnotherClass"), den ich ja bei der Textbox bekomme, in eine Klasse umzuwandeln?
Warum das ganze? Schauste Type.GetProperties Method...es wird eine Klasse benötigt und keinen Sting
Type myType =(typeof(AnotherClass));
und dies geht mit einem String halt eben nicht!
Wäre für Vorschläge/andere Lösungen dankbar
Thx
Hallo,
ibt es nun die Möglichkeit den string ("AnotherClass"), den ich ja bei der Textbox bekomme, in eine Klasse umzuwandeln?
Type.GetType
- diese Methode gibt es dafür.
Bei SharpDevelop gibt es zwar ein Beispiel Sample aber das funktioniert leider nicht
Ich meinte kein Bsp. von #Develop, sondern deren Source-Code der IDE selbst.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Hallo mariob1,
was mir die ganze Zeit durch den Kopf geht: Mitten bei der Eingabe des Quellcodes lässt sich dieser doch oft gar nicht korrekt übersetzen. Insofern kommt man doch mit Reflection hier nicht wirklich weiter.
Mein Tipp wäre der gleiche wie von gfoidl. Schau dir dir die Source von SharpDevelop an und schau, wie es da gemacht ist.
herbivore
Hi,
Mitten bei der Eingabe des Quellcodes lässt sich dieser doch oft gar nicht korrekt übersetzen
zu deiner Aussage sollte ich hinzufügen, dass der Benutzer dabei nicht programmiert, sondern an einem Editor die Eingaben tätigt. Diese Eingaben möchte ich mit CC (CodeCompletion)/Intellisense unterstützen.
Der Quellcode, auf den ich zugreifen will, wegen der CC, ist ja dabei schon vorcompiliert. Ich möchte dabei die Klassen, Methoden, Properties.....die ich im vorcompilierten Code habe, durchgehen und an der richtigen Stelle anzeigen
OK, danke für den Tip, werde mal SharpDevelop auseinandernehmen 😉
Thx
s. auch hier:
Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.