के साथ निर्भरता इंजेक्शन क्या Windows PowerShell के साथ निर्भरता इंजेक्शन (DI) का उपयोग करना संभव है?PowerShell
मेरे प्रारंभिक प्रयोगों से पता चलता है कि यह नहीं है। अगर मैं कन्स्ट्रक्टर इंजेक्शन को सीएमडीएलट में उपयोग करने का प्रयास करता हूं तो यह खुद को पंजीकृत भी नहीं करता है। दूसरे शब्दों में, यह संभव नहीं है:
[Cmdlet(VerbsDiagnostic.Test, "Ploeh")]
public class PloehCmdlet : Cmdlet
{
public PloehCmdlet(IFoo foo)
{
if (foo == null)
{
throw new ArgumentNullException("foo");
}
// save foo for later use
}
protected override void ProcessRecord()
{
this.WriteObject("Ploeh");
}
}
अगर मैं एक डिफ़ॉल्ट निर्माता जोड़ने के लिए, cmdlet पंजीकृत है और इस्तेमाल किया जा सकता, लेकिन डिफ़ॉल्ट निर्माता के बिना, यह बस उपलब्ध नहीं है।
मैं मैं अपने निर्भरता प्राप्त करने के लिए सेवा लोकेटर इस्तेमाल कर सकते हैं पता है, लेकिन मैं विचार है कि एक विरोधी पैटर्न ताकि रास्ते जाने के लिए नहीं करना चाहती।
मुझे उम्मीद थी कि पावरशेल एपीआई के पास डब्ल्यूसीएफ की सर्विसहोस्ट फैक्ट्री के समान कुछ 'फैक्ट्री' हुक था, लेकिन यदि ऐसा है, तो मुझे यह नहीं मिल रहा है।
मैं भी उत्सुक हूँ। –
मुझे इसके लिए एक अच्छा उपयोग केस के साथ आने में मुश्किल हो रही है। – yfeldblum
मैं एक सेवा लोकेटर का उपयोग कर रहा हूँ। :) –