Laden...

Eigenes Intellisense programmieren: Auflistung von Methoden die sich in einer Klasse befinden

Erstellt von mariob1 vor 13 Jahren Letzter Beitrag vor 7 Jahren 5.284 Views
M
mariob1 Themenstarter:in
22 Beiträge seit 2010
vor 13 Jahren
Eigenes Intellisense programmieren: Auflistung von Methoden die sich in einer Klasse befinden

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

C
401 Beiträge seit 2007
vor 13 Jahren

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.

M
mariob1 Themenstarter:in
22 Beiträge seit 2010
vor 13 Jahren

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

6.910 Beiträge seit 2009
vor 13 Jahren

Hallo,

oder gibt es sogar schon ...fertige Lösung dazu?

Intellisense 😁

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!"

M
mariob1 Themenstarter:in
22 Beiträge seit 2010
vor 13 Jahren

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

M
mariob1 Themenstarter:in
22 Beiträge seit 2010
vor 13 Jahren

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

6.910 Beiträge seit 2009
vor 13 Jahren

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!"

49.485 Beiträge seit 2005
vor 13 Jahren

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

M
mariob1 Themenstarter:in
22 Beiträge seit 2010
vor 13 Jahren

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

2.921 Beiträge seit 2005
vor 7 Jahren

s. auch hier:

AvalonEditControl

Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.