Domanda

C'è qualcosa che non capisco sul remoting .NET. Bene, due cose in realtà:

  1. Perché l'enfasi è di nuovo sulle classi che ereditano da MarshalByRef invece che sulle interfacce nello stile COM originale (che mi è piaciuto)?

  2. Perché il remoting .NET ti costringe sempre a creare effettivamente una sorta di pool di oggetti invece di consentire di associare istanze specifiche a un URL?

Codice server:

RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemotingTypes.Server), "MyURL", WellKnownObjectMode.Singleton);

Codice client:

RemotingTypes.Server myInstance = new RemotingTypes.Server();

Ma supponiamo di voler creare il " Server " istanza me stesso e poi semplicemente associarlo a un endpoint?

<*>

E adesso? Come posso associare " myInstance " con l'URL " MyURL " ?

È stato utile?

Soluzione

Il problema con la risposta di Nickd: volevo sapere come associare un'istanza già creata a un URL, piuttosto che come ottenere un servizio remoto .NET per fare questo per me (alcune istanze che ho creato che non hanno un valore predefinito costruttore, ad esempio).

Speravo che ci sarebbe stata una risposta epica che spiegava la "filosofia" dietro .NET remoting e perché è indissolubilmente accoppiato al sistema di tipi ...

Quello che ho concluso invece è semplicemente che: a) È perché il remoting .NET fa schifo. Non usarlo b) Utilizzare WCF invece

Altri suggerimenti

Non riesco davvero a indirizzare i punti 1 e 2 poiché non ho esperienza di COM e non capisco 2, ma per rispondere alla tua specifica domanda finale, se usi il sistema. Classe Activator, puoi farlo:

RemotingTypes.Server  myInstance = (RemotingTypes.Server) Activator.GetObject(typeof(RemotingTypes.Server), MyUrl);

Significa che devi vincolarlo in fase di costruzione, ma è tutto lato client.

Vedi la mia domanda simile .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top