2013-04-26 6 views
5

Je ne l'ai pas encore essayé, mais j'aimerais que chaque module (Silverlight) enregistre ses propres routes, plutôt que de les ajouter au démarrage de l'application.ServiceStack: Ajouter dynamiquement des routes

Les routes peuvent-elles être ajoutées à AppHost après le démarrage de l'application ou doivent-elles toutes être enregistrées immédiatement lors de l'étape Configurer?

Je pense à analyser toutes les assemblées au démarrage et à fournir apphost avec tous les ensembles qui mettent en œuvre des services de la pile de services, mais laissez chaque module ajouter ses propres routes (n'ont pas encore compris mécanisme exact.

Avant aller dans cette voie, le besoin de savoir s'il est possible d'ajouter des routes après l'étape Configurer.

Répondre

5

Toute la configuration et l'enregistrement dans ServiceStack devrait se faire dans la méthode AppHost.Configure() et reste immuable par la suite.

Si vous voulez enca psuler les enregistrements d'itinéraires dans un module que de l'empaqueter comme Plugin et les enregistrer manuellement sur IPlugin.Register(IAppHost).

Voici quelques différentes façons d'enregistrer des itinéraires:

public class MyModule : IPlugin 
{ 
    public void Register(IAppHost appHost) 
    { 
     appHost.Routes.Add<MyRequestDto>("/myservice", "POST PUT"); 

     appHost.Routes.Add(typeof(MyRequestDto2), "/myservice2", "GET"); 

     appHost.RegisterService(typeof(MyService), "/myservice3"); 
    } 
} 

Ensuite, l'intérieur de votre AppHost.Configure vous enregistrer le plug-in, par exemple:

Plugins.Add(new MyModule()); 
+0

Lorsque ENREGISTRER routes, dans apphost, le paramètre générique a été un type de requête, mais ici c'est un service? – epitka

+0

@epitka mis à jour, RegisterService prend un type de service alors que Routes.Add prend un type DTO de requête – mythz

Questions connexes