2012-06-27 12 views
7

ऑटोफैक एक ही उदाहरण के साथ कई इंटरफ़ेस को बहुत आसानी से हल करने की अनुमति देता है .इसइम्प्लेटेड इंटरफेस() या जंजीर। <>() एक साथ कॉल करता है। सिंगल इंस्टेंस()। क्या यह TinyIoC के साथ भी किया जा सकता है? मैंने पाया है कि एक ही इंटरफेस के कई कार्यान्वयन को कैसे पंजीकृत किया जाए, लेकिन पंजीकरण या इसी तरह की श्रृंखला का कोई तरीका नहीं है।TinyIoC: एक उदाहरण पर एकाधिक इंटरफेस पंजीकृत करें

मेरी समझ से यह आईओसी कंटेनर के लिए एक महत्वपूर्ण विशेषता है, है ना?

उत्तर

9

मैं सही ढंग से समझ रहा हूँ, तो आप

public class MyThing : IFoo, IBar 
{ 
} 

की तरह कुछ है और आप एक दूसरे के रूप में एक ही उदाहरण वापस जाने के लिए निम्नलिखित चाहते हैं:

Resolve<IFoo>(); 
Resolve<IBar>(); 

यदि हां, तो यह संभव है, लेकिन यह है थोड़ा बदसूरत:

container.Register<IFoo, MyThing>(); 
container.Register<IBar>((c,p) => c.Resolve<IFoo>() as IBar); 

यदि आप चाहें तो शायद आप इसे कुछ अच्छे सिंटैक्स में लपेट सकते हैं, लेकिन वह fa ctory प्रतिनिधि प्रभावी रूप से हुड के तहत क्या हो रहा है प्रभावी है।

+0

धन्यवाद! मैं इस तरह कुछ खोजने की कोशिश कर रहा था, लेकिन कल रात मेरे दिमाग को काफी नहीं कर सका। – TeaDrivenDev

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