Entwickler-Ecke

Basistechnologien - Klassen on the fly einbinden


lapadula - Mi 26.07.17 21:20
Titel: Klassen on the fly einbinden
Hallo hab mal wieder eine Frage :D

Mal angenommen ich habe ein Programm A, welches modular aufgebaut ist.

Mit einem anderen Programm B soll man nun Klassen erstellen können, die in das Programm A on the fly einbunden werden. Aus diesen Klassen sollen dann Objekte gebildet werden usw, quasi so, als wären die schon seit Anfang an da.

Ist sowas möglich?


Ralf Jansen - Mi 26.07.17 21:49

Nicht ganz klar was du willst.

Erstmal klingt es nach einem normalen Plugin/Addin System.
Aber was soll das andere Programm? Möchtest du ein Codegenerator für diese Klassen haben um im im anderen Programm zu nutzen?


jfheins - Mi 26.07.17 22:06

Du kannst in Programm A ein Interface oder eine abstrakte Basisklasse definieren.

Dann kannst du beliebig viele Assemblies erstellen, in denen dann Ableitungen dieser Klasse drin sind. Nun kann Programm A diese Assemblies laden und die Objekte benutzen. (Entweder beim start "Alle Assemblies in diesem Ordner laden" oder auch ganz on the fly)

Das Programm B wäre in diesem Fall Visual Studio Commuinity (man scheibt Klassen und kompiliert diese zu einer Assembly).
Du kannst aber natürlich auch eine beliebig vereinfachte Variante von Visual Studio nach-programmieren. Je nach Zielgruppe.


lapadula - Do 27.07.17 09:57

@Ralf: Ja genau, dachte da einfach an einen einfach Textgenerator, nur Benutzerfreundlich. Z.B. der Benutzer gibt in eine TextBoxKlasse den Namen der Klasse ein und das Programm erstellt dann

C#-Quelltext
1:
public class TextBoxKlasse.Text {}                    

Dann TextBoxEigenschaft usw.

Am Ende ergibt das public class Test {public Property {get;set;}}


@jfheins: Ich glaube das ist genau das wonach ich suche, muss ich mal demnächst mal ausprobieren.

Moderiert von user profile iconTh69: C#-Tags hinzugefügt


Delete - Do 27.07.17 13:22

- Nachträglich durch die Entwickler-Ecke gelöscht -