2013-08-22 16 views
12

मैं एक ViewModel जो, निर्माता में, एक async शून्य विधि को फोन करेगा एक संग्रह में जोड़ने के लिए हैराइनो नकली स्टब Async विधि

public MyViewModel(ICommandHandler commandHandler) 
{ 
    _commandHandler = commandHandler; 
    SetupCollection(); 
} 


private async void SetupCollection() 
{ 
    var commands = GetCommands(); 

    foreach (var command in commands) 
    { 
     var response = await _commandHandler.ExecuteGetReply(command); 

     if (response != null) 
      Response.Add(response); 
    } 
} 

मैं _commandHandler.ExecuteGetReply() आदेश वास्तव में किस प्रकार ठूंठ हैं एक मूल्य के वापस जाने के लिए ?

साथ ही, क्या ऐसा कुछ ऐसा करने के लिए कन्स्ट्रक्टर में ऐसा फ़ंक्शन ठीक है? या यह शायद एक के भीतर जाना चाहिए ... override void OnActivate() कॉल (मैं कैलिब्रर्न माइक्रो का उपयोग कर रहा हूँ)? ,

ICommand commandArg; 
Response response; 
stubHandler.Stub(h => h.ExecuteGetReply(commandArg)).Return(Task.FromResult(response)); 

मैं हालांकि अपने निर्माता से एक async शून्य विधि फोन नहीं है, क्योंकि आपको सूचित किया जा जब यह है का कोई रास्ता नहीं होगा:

उत्तर

19

ICommandHandler.ExecuteGetReply की तरह एक Task<Response> कुछ तो आप क्या कर सकते हैं वापस जाने के लिए प्रकट होता है पूरा कर लिया है।

+0

क्या होता है यदि 'commandHandler.ExecuteGetReply' अपवाद फेंकता है? –

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