Entwickler-Ecke
C# - Die Sprache - Zwei Projekte sollen gleiche Klasse verwenden
katmai - Mi 26.05.10 19:16
Titel: Zwei Projekte sollen gleiche Klasse verwenden
Hallo Liebe C# Fans
Mein Ausgangspunkt ist folgender:
Ich habe zwei Projekte. Das erste stellt ein Hauptformular dar und das zweite ist ein vom Hauptformular aufgerufenes Formular zum editieren und anlegen von Datensätzen.
Es sind zwei Projekte weil ich verteilte Programmierung simulieren soll(also einer schreibt das eine Prog der andere das andere).
Das zweite Projekt wird als .dll kompiliert und in das erste als Verweiß eingefügt.
Mein Problem ist das ich für die Datensätze eine Klasse erstellt habe und beide Formulare diese Klasse kennen sollen.
hier erstmal die Klasse für die Datensätze aus dem Hauptformular:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34:
| namespace Materialverwaltung { [Serializable]public class Dataset { public String ZNr; public String connect; public Int32 Bestand; public String Bearbeiter; public DateTime Date; public String Material; public String LfdNr; public String Benennung; public Image img;
public Dataset() { }
public Dataset(String ZNr, String connect, Int32 Bestand, String Bearbeiter, String Material, String LfdNr, String Benennung, Image img) { this.Bearbeiter = Bearbeiter; this.Benennung = Benennung; this.Bestand = Bestand; this.connect = connect; this.Date = DateTime.Now; this.img = img; this.LfdNr = LfdNr; this.Material = Material; this.ZNr = ZNr; }
} } |
Also ist es eher ein Herangehensweiseproblem.... denn ich möchte die Datasets aus dem Hauptformular, dem Nebenformular übergeben und wenn ichs ändern lassen habe wieder zurückgeben.
Bisher habe ich beiden Formularen die Klassen hinzugefügt mit jeweils dem entsprechenden Namensspaces.
Leider akzeptiert das Hauptformular bzw das Nebenformular nicht die jeweiligen Instanzen der Klassen des anderen.
Der Fehler der erscheint ist " kann nicht konvertiert werden".
Der einzige Weg mit dem es geht ist indem ich mir die einzelnen Variablen des Datasetobjekts hole und in ein neues Dataset des anderen Formulars schreibe.... dies gefällt mir aber nicht... habt Ihr eine Idee wie ich die Klassendefinition für beide Formulare so machen kann das Sie sich gegenseitig akzeptieren und nicht wiederspechen obwohl Sie gleich sind ? Oder ist meine Herangehenweise komplett falsch ?
Danke für eure Bemühungen und Geduld beim lesen dieses Textes...
Kha - Mi 26.05.10 20:32
Beide Formulare müssen auf dieselbe Klasse zugreifen. Wirf also die des Hauptprojekts weg und benutze nur die des Unterprojekts.
katmai - Mi 26.05.10 21:04
Danke für die Antwort...
daran hatte ich auch schon mal gedacht es aber wieder verworfen weil noch 2 weitere Nebenformulare hinzukommen die die Dataset Klasse kennen müssen. Oder soll ich die drei Unterklassen, die dann eigentlich gleich sind, getrennt vom Hauptformular aus behandeln ? Dann hätte ich ja aber wieder das gleiche Problem, dass die drei Instanzen der drei Nebenformulare sich nicht gleichen bzw nicht gleichsetzbar sind ...
hast Du noch ne andere Idee das Problem zu lösen ?
Kha - Mi 26.05.10 22:37
katmai hat folgendes geschrieben : |
| daran hatte ich auch schon mal gedacht es aber wieder verworfen weil noch 2 weitere Nebenformulare hinzukommen die die Dataset Klasse kennen müssen. |
Dann musst du die Klasse in ein eigenes Projekt setzen, das dann von allen anderen referenziert wird. Das ergibt sich so bei jeder Plugin-ähnlichen Architektur :) .
katmai - Do 27.05.10 08:40
hmmm daran hab ich noch garnicht gedacht oO...
das werd ich gleich mal ausprobieren...
Vielen Dank !!
Mangafreak1995 - Mi 02.06.10 22:11
wenn du einen Verweis drauf hast aufs 2. Projekt, kannst du deinen Aufbau doch auch public in den NameSpace setzen ... somit kommt jeder ran
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!