Domanda

Al momento ho qualcosa di simile per la mia tabella di route. C'è un modo migliore per gestire le versioni in WCF Web API o WCF convenzionale?

RouteTable.Routes.MapServiceRoute<Service1>("1.0/Route1", Config1);
RouteTable.Routes.MapServiceRoute<Service2>("1.0/Route2", Config2);
RouteTable.Routes.MapServiceRoute<Service3>("1.0/Route3", Config3);
RouteTable.Routes.MapServiceRoute<Service4>("1.0/Route4", Config4);
È stato utile?

Soluzione

Si potrebbe fare questo, ma è molto Protocollo-bound , in questo caso, HTTP . Mi chiedo se c'è un modo per farlo senza preoccuparsi tanto di protocolli? Idealmente vogliamo solo farlo una volta e non per ogni trasporto là fuori. Per fortuna c'è un modo, lascia che ti spieghi.

Alla fine della giornata, i vostri internals WCF deve essere protocollo agnostico . Con questo voglio dire per il momento in un metodo viene richiamato sul vostro servizio, non dovremmo importa se è venuto da REST, TCP, HTTP o named pipe .

In WCF questo è abbastanza facile e così è il controllo delle versioni. Con versioni possiamo imparare molto su .NET interfaccia delle versioni in particolare quando si ha nulla a che fare con WCF. L'idea è che il servizio dovrebbe rendersi conto:

interface ISomething1 { ... }

Più tardi, quando sono necessari un nuovo metodo o le modifiche è necessario:

interface ISomething2 : ISomething1 { void SomethingNew (...) }

E 'quindi una semplice questione di pubblicare il vostro servizio con 2 punti finali in config, una punta a ISomething1 e l'altro a ISomething2 .

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