कार्यप्रवाह एक आईओसी कंटेनर का उपयोग नहीं करता है। यह ServiceLocator पैटर्न का उपयोग करता है जहां आप वर्कफ़्लो रनटाइम पर एक्सटेंशन और वर्कफ़्लो गतिविधियों के रूप में निर्भरता जोड़ते हैं और संदर्भ के माध्यम से वर्कफ़्लो एक्सटेंशन से इन सेवाओं को पुनर्प्राप्त करते हैं।
एक सेवा लोकेटर और आईओसी पैटर्न समान हैं और निर्भरता को कम करने में एक ही उद्देश्य है। एक आईओसी कंटेनर में भरोसेमंदता को धक्का देने के दौरान अपर्याप्त अलग है, जबकि एक सेवा लोकेटर को निर्भरता खींचने के लिए उपयोग किया जाता है।
उदाहरण गतिविधि:
public class MyBookmarkedActivity : NativeActivity
{
protected override void CacheMetadata(NativeActivityMetadata metadata)
{
base.CacheMetadata(metadata);
metadata.AddDefaultExtensionProvider<MyExtension>(() => new MyExtension());
}
protected override void Execute(NativeActivityContext context)
{
var extension = context.GetExtension<MyExtension>();
extension.DoSomething();
}
}
MyExtension वर्ग विस्तार यहाँ है और यह कोई आधार वर्ग या इंटरफ़ेस आवश्यकताएं होती हैं।
आप एक विस्तार के रूप में स्वयं को एक साधारण डी कंटेनर भी जोड़ सकते हैं और इसे अपने निष्पादन विधि के संदर्भ से आसानी से सुलभ बना सकते हैं। http://blog.petegoo.com/index.php/2010/08/16/unit-test-workflow-4-activities- निर्भरता- इंजेक्शन/ –
एफवाईआई, मैंने अपने टूलकिट प्रोजेक्ट में कुछ कस्टम गतिविधियां बनाई हैं जो इसे प्रदान करती हैं कार्यक्षमता। मैंने इसे निर्भरता संकल्प (सेवा लोकेटर को मॉरीस के रूप में इंगित किया है) कहा है। यह गतिविधि दृढ़ता परिदृश्यों का ख्याल रखेगा और जब वे समाप्त हो जाएंगे तो किसी भी निर्भरता को साफ करें। http://www.neovolve.com/post/2010/10/01/Custom-Windows-Workflow-activity-for- निर्भरता-resolutione28093Wrap-up.aspx –