2013-01-08 19 views
5

लिए पैरामीटर पास है मैं निम्नलिखितकैसे मैं एक ServiceHost

//Define the service host 
     this._smeediPluginServiceHost = new ServiceHost(typeof(SmeediServiceHost), smeediServiceUri); 
     this._smeediPluginServiceHost.AddServiceEndpoint(typeof(ISmeediServiceHost), GetBinding(), smeediServiceUri); 
     SetupAndStartWebService(_smeediPluginServiceHost); 


    private void SetupAndStartWebService(ServiceHost serviceHost, ServiceDiscoveryBehavior serviceDiscoveryBehavior = null) 
    { 
     //Define service behaviours 
     ServiceMetadataBehavior serviceMetadataBehavior = new ServiceMetadataBehavior(); 
     serviceMetadataBehavior.HttpGetEnabled = true; 

     //Add the behaviours to the service 
     serviceHost.Description.Behaviors.Add(serviceMetadataBehavior); 

     if (serviceDiscoveryBehavior != null) 
      serviceHost.Description.Behaviors.Add(serviceDiscoveryBehavior); 

     serviceHost.Open(); 
    } 

मैं सेवा के लिए एक पैरामीटर पारित करने के लिए की जरूरत है कर रहा हूँ और मैं कैसे को समझ नहीं सकता। मैंने How do I pass values to the constructor on my wcf service? पर देखा है लेकिन मेरे सिर को इसके चारों ओर नहीं मिल सका। धन्यवाद

+0

क्या आप कॉन्फ़िगरेशन को पास करने के बजाय सेवा के भीतर ConfigurationManager.AppSettings [] का उपयोग करके app.config फ़ाइल से बस पढ़ सकते हैं? – TylerOhlsen

उत्तर

17

यदि मैं सही ढंग से समझता हूं, तो आप अपनी सेवा कार्यान्वयन कक्षा के निर्माता को पैरामीटर पास करना चाहते हैं। आप इसके प्रकार के बजाय passing an instance of the service class to the ServiceHost constructor तक कर सकते हैं। यही कारण है:

// Create the service instance 
var instance = new SmeediServiceHost("some parameters"); 

// Define the service host using the above instance 
this._smeediPluginServiceHost = new ServiceHost(instance, smeediServiceUri); 

सावधानी - इस दृष्टिकोण का उपयोग कर आप सेवा वर्ग के एक सिंगलटन उदाहरण का उपयोग कर रहे है। यदि आपको प्रति सत्र या प्रति अनुरोध के लिए एक नया उदाहरण चाहिए, तो this answer में वर्णित ServiceHostFactory का उपयोग करने पर विचार करें।

+0

+1। एक अतिरिक्त के रूप में, उपयोगी लेख: [डब्ल्यूसीएफ सेवा संस्थान] (http://devproconnections.com/net-framework/wcf-service-instancing) – informatik01