Re: .NET Remoting - ich bin doch nicht blöd ?
- From: "Günter Prossliner" <g.prossliner/gmx/at>
- Date: Mon, 18 Jun 2007 14:49:15 +0200
Hallo Sebastian!
Ich möchte eine Klasse erstellen die systemweit nur einmal erzeugt
werden kann,
Du meinst vermutlich eine Instanz der Klasse.
dazu wurde mir hier Remoting nahe gelegt, scheinbar der einzige Weg
dies in .NET zu realisieren(ohne Worte).
In modernen Betriebsystem existiert jeder Prozess (Gott sei Dank) in einem
eigenen Speicherbereich. Folglich kann man nicht einfach so Speicher so
sharen. Das hängt nicht von der Sprache ab.
In welcher Sprache / Umgebung hast Du denn bisher gecoded? Dieses Verhalten
wird vom OS bestimmt. Es ist also immer eine Form vom IPC notwendig um eine
maschinenweite Instanz zu realisieren. Nur über Sprachen, welche einen
direkten Einfluss auf die Erstellung des PE-Files (den Link-Vorgang) haben
(z.B. C / C++) kann man so was ggf. über Shared - Segments realisieren.
Die Beispiele dazu in der
Dokumenation verwirren mich schwer, ich soll einen einen TCP-Channel
einrichten und einen (hoffentlich auch freien) Port belegen dabei
will ich mit dem Netzwerk nichts zu tun haben.
Du musst keine TCP-Channel verwenden. Es gibt auch andere (in Deinem Fall am
besten den IPC - Channel (ab .NET >= 2.0)).
Ich will nur ein Objekt das Anwendungsdomänenübergreifend systemweit
jedem der will auf dem Rechner lokal zur Verfügung steht. Dazu
scheint der Ersteller des Objektes meiner Klasse zu bestimmen ob
Singleton oder Singlecall verfahren wird, wobei er also meine Logik
durchbrechen kann und einfach mehrere Objekte erstellt.
Das Objekt muss ja nicht öffentlich sein:
1. Definiere ein öffentliches Interface welches alle Members Deines
Singleton Objektes beinhaltet.
2. Implementiere das Interface in einer privaten Klasse
3. Erstelle eine Factory-Methode, welche die Singleton Instanz in Form des
Interfaces zurückgibt. Dazu solltest Du den IPCChannel verwenden.
Ist das Remoting das Problem oder bin ich das Problem weil ich etwas
nicht verstanden habe?
Neben Remoting dürfte auch WCF eine gute Wahl sein (ab .NET 3.0).
OK?
mfg GP
.
- Follow-Ups:
- Re: .NET Remoting - ich bin doch nicht blöd ?
- From: Sebastian Lange
- Re: .NET Remoting - ich bin doch nicht blöd ?
- Prev by Date: DataGrid ScrollBar erzwingen
- Next by Date: Re: Generische Liste und serializieren
- Previous by thread: Re: .NET Remoting - ich bin doch nicht blöd ?
- Next by thread: Re: .NET Remoting - ich bin doch nicht blöd ?
- Index(es):
Relevant Pages
|