2009-10-08 12 views
8

कोई भी मदद कर सकता है?एकता और डब्ल्यूसीएफ लाइब्रेरी: एक डब्ल्यूसीएफ पुस्तकालय में एकता कहाँ लोड करें?

..

मैं एक WCF पुस्तकालय (नहीं आवेदन) बनाया है और मैं एक एसवीसी आईआईएस पेज में इस की मेजबानी करेगा

लेकिन मैं सामान्य जगह में एकता सामान लोड करने के लिए इच्छुक था ... मैं इसे लोड कर सकता है global.asax में लेकिन फिर यह आईआईएस एएसपीनेट कंटेनर से जुड़ा हुआ है और टीडीडी करते समय यह हिस्सा निष्पादित नहीं होगा, इसलिए मेरे संकल्पों का काम नहीं होगा।

डब्ल्यूसीएफ लाइब्रेरी एक शुद्ध वर्ग है इसलिए मुझे संदेह है कि मैं ऑनस्टार्टअप इत्यादि जैसी किसी भी घटना का उपयोग कर सकता हूं?

एक ही रास्ता मैं क्या सेवा होने के बारे में सोचा एक आधार वर्ग के साथ-साथ इंटरफ़ेस जो किसी तरह के एक स्थिर वर्ग फोन और एकता के लिए बूटस्ट्रैपिंग करना होगा से विरासत,

मैं एक छोटे से खो रहा हूँ .. क्या यह एकमात्र तरीका है या क्या कोई रास्ता है जिसे मैं अनजान हूं।

मूल रूप से विचार है ... कौन कभी WCF पुस्तकालय तो एकता इंजेक्शन होने की जरूरत है कॉल ..

कोई भी विचार?

धन्यवाद

उत्तर

5

इस समस्या से निपटने के कई तरीके हैं। यहाँ आप दो सबसे अच्छा विकल्प हैं:

आप एक कस्टम ServiceHost बना सकते हैं और ओवरराइड कर सकते हैं InitializeRuntime

आप कर सकते हैं, हालांकि एक वर्ग एक सार्वजनिक स्थैतिक विधि AppInitialize के साथ अपने App_Code निर्देशिका में ApplicationStart बनाएं जिसका नाम (यह एक गंध का एक सा है,):

public static class ApplicationStart 
{ 
    public static void AppInitialize() 
    { 
     // Initialise IoC container 
    } 
} 

वेनलांग डोंग में other methods on his blog है।

+0

धन्यवाद, मैं InitializeRuntime का उपयोग करने जा रहा हूँ –

0

आप सेवा वस्तुओं एकता या किसी अन्य आईओसी कंटेनर का उपयोग कर बनाने के लिए एक IInstanceProvider उपयोग कर सकते हैं। ऐसा करने के तरीके के विवरण के लिए this ब्लॉग पोस्ट देखें।

अगला आप ApplyDispatchBehavior विधि में InstanceProvider सेट करके डिस्पैच रनटाइम में IInstanceProvider को जोड़ने के लिए एक विशेषता के रूप में कार्यान्वित एक IContractBehavior का उपयोग कर सकते हैं।

0

अब एक खुला स्रोत NuGet पैकेज है जिसे यूनिटी.WCF कहा जाता है जो आपके लिए इसका ख्याल रख सकता है।

अधिक जानकारी और स्रोत कोड के लिए http://unitywcf.codeplex.com/ देखें।

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