2013-04-06 8 views
5

में प्लग-इन को जोड़ा जाना चाहिए, तो अभी तक आसान है, मुझे अभी तक कोई जानकारी या उदाहरण नहीं मिल रहा है जो सटीक रूप से समझाएगा कि यह कहां होना चाहिए। मैं इस बिंदु पर अनुमान लगा रहा हूं कि यह कॉन्फ़िगर विधि में होना चाहिए।सर्विसस्टैक

धन्यवाद, स्टीफन

वैश्विक

public class AppHost : AppHostBase 
{ 
    public AppHost() : base("Web Services", typeof(ContactsService).Assembly) { } 

    public override void Configure(Container container) 
    { 
     //Set JSON web services to return idiomatic JSON camelCase properties 
     ServiceStack.Text.JsConfig.EmitCamelCaseNames = true; 

     //Show StackTrace in Web Service Exceptions 
     SetConfig(new EndpointHostConfig { DebugMode = true }); 


     //Register any dependencies you want injected into your services 
     container.Register<ICacheClient>(new MemoryCacheClient()); 

/*   // Redis 
     container.Register<IRedisClientsManager>(c => new PooledRedisClientManager()); 
     container.Register<IRepository>(c => new Repository(c.Resolve<IRedisClientsManager>()));*/ 


     container.Register<IRepository>(new Repository()); 
     container.Register<IBusinessService>(new BusinessService()); 

     //Configure Custom User Defined REST Paths for your services 
     /*ConfigureServiceRoutes();*/ 

     //Add a request filter to check if the user has a session initialized 
     /*this.RequestFilters.Add((httpReq, httpResp, requestDto) => 
     { 
      var sessionId = httpReq.GetCookieValue("user-session"); 
      if (sessionId == null) 
      { 
       httpResp.ReturnAuthRequired(); 
      } 
     });*/ 


     RequestFilters.Add((httpReq, httpResp, requestDto) => new LogRequestAttribute().Execute(httpReq, httpResp, requestDto)); 

     Plugins.Add(new SwaggerFeature()); 
    } 

    public static void Start() 
    { 
     new AppHost().Init(); 
    } 
} 

अपडेट किया गया

public AppHost() : base("Web Services", typeof(ContactsService).Assembly) { } 

public override void Configure(Container container) 
{ 
    .... 

    ConfigurePlugins(); 
} 

private void ConfigurePlugins() 
{ 
    Plugins.Add(new ProtoBufFormat()); 
    Plugins.Add(new RequestLogsFeature()); 
    Plugins.Add(new SwaggerFeature()); 
} 

private void ConfigureServiceRoutes() 
{ 

} 

public static void Start() 
{ 
    new AppHost().Init(); 
} 

उत्तर

4

कोई जानकारी है, क्योंकि ServiceStack में Pluginsकहीं भी जोड़ा जा सकता है आपके AppHost.Configure() विधि के अंदर। यह

यह कोई फर्क नहीं पड़ता, जहां AppHost.Configure() विधि में वे जोड़ दिया जाता है, क्योंकि वे केवल प्रारंभ ServiceStack से कर रहे हैं सभी ServiceStack विन्यास और निर्भरता, सेवाओं, फिल्टर के पंजीकरण, आदि का सच है के बाद यह किया गया है बुलाया।

हालांकि वे प्रारंभ किए गए हैं (यानी IPlugin.Register() कहा जाता है) उसी क्रम में जोड़े गए थे।

+0

ठीक है, मैंने उन्हें एक बेहतर नाम की कमी के लिए बस कॉन्फ़िगर प्लगइन विधि में जोड़ा है .. –

संबंधित मुद्दे