Zugriff auf Objekt einer anderen Methode
-
Hallo,
habe eine Frage bezüglich einer C# DLL, die ich schreiben möchte:Ich habe eine Anwendungssoftware gekauft, diese ermöglicht das Einbinden von DLLs. In dieser DLL ruft sie dann eine bestimmte Methode und stellt dieser ein Datenobjekt zur Verfügung. Dieses Datenobjekt ermöglicht den Zugriff auf Daten und Funktionen der Anwendungssoftware:
public bool DieseMethodeWirdVonDerAnwendungssoftwareAufgerufen(ref object Datenobjekt) { //Hier habe ich nun Zugriff auf das Datenobjekt des Anwendungsprogramms }
Jetzt habe ich in der DLL einen WCF-Service erstellt, um mit einem anderen selbstgeschriebenen Programm zu kommunizieren. Dieses ruft eine Service-Methode meiner DLL.
public bool WcfServiceMethode() { //Hier hätte ich gerne Zugriff auf das Datenobjekt des Anwendungsprogramms }
Einfach das Datenobjekt in ein Feld der Klasse schreiben und von WcfServiceMethode() darauf zugreifen geht leider nicht! Vermutlich wird da nur eine Kopie o.ä. erstellt. Wie aber erstelle ich einen Zeiger/Referenz auf das in der Methode DieseMethodeWirdVonDerAnwendungssoftwareAufgerufen() existierende Objekt?
-
Wenn das Objekt nur in der Methode DieseMethodeWirdVonDerAnwendungssoftwareAufgerufen existiert, wird das wohl nicht gehen. Warum funktioniert es nicht, wenn du das Objekt als Feld der Klasse schreibst?
-
Wenn das Objekt nur in der Methode DieseMethodeWirdVonDerAnwendungssoftwareAufgerufen existiert, wird das wohl nicht gehen. Warum funktioniert es nicht, wenn du das Objekt als Feld der Klasse schreibst?
Mit dem Original-Objekt kann man auf Funktionen und Daten der Anwendungssoftware zugreifen. Kopiere ich dieses Objekt in ein Feld und greife hierauf zu, so kommt es zu einer Fehlermeldung (Exception).
Ich stelle mir das so vor:
Zwei Methoden werden parallel ausgeführt. In einer Methode existiert ein Objekt, auf das die andere Methode zugreifen soll. Man bräuchte also einen Zeiger auf das lokale Objekt dieser Methode. Lässt sich so etwas realisieren?
-
Kaeltepol schrieb:
Kopiere ich dieses Objekt in ein Feld und greife hierauf zu, so kommt es zu einer Fehlermeldung (Exception).
Und welche Fehlermeldung ist das?