मैं एक वर्ग कि मोटे तौर पर इस तरह दिखता है:मैं इस एसिंक्रोनस विधि का नकल कैसे कर सकता हूं?
public class ViewModel
{
public ViewModel(IWebService service)
{
this.WebService = service;
}
private IWebService WebService{get;set;}
private IEnumerable<SomeData> MyData{get;set;}
private void GetReferenceData()
{
this.WebService.BeginGetStaticReferenceData(GetReferenceDataOnComplete, null);
}
private void GetReferenceDataOnComplete(IAsyncResult result)
{
this.MyData = this.WebService.EndGetStaticReferenceData(result);
}
.
.
.
}
मैं अपने IWebService इंटरफ़ेस उपहास करने के लिए इतना है कि जब BeginGetStaticReferenceData यह कॉलबैक विधि कॉल करने में सक्षम है कहा जाता है चाहता हूँ। मैं मोक का उपयोग कर रहा हूं और मैं यह नहीं कर सकता कि यह कैसे करें। - मुझे यकीन है कि यह आसानी से बजाय Moq उपयोग करने के लिए अनुकूलित किया जा सकता हूँ
//Arrange
var service = new Mock<IWebService>();
service.Setup(x => x.BeginGetStaticReferenceData(/*.......don't know.....*/));
service.Setup(x => x.EndGetStaticReferenceData(It.IsAny<IAsyncResult>())).Returns(new List<SomeData>{new SomeData{Name="blah"}});
var viewModel = new ViewModel(service.Object);
.
.
बहुत बढ़िया, इस महान काम किया। धन्यवाद! – Charlie
मैंने UdpClient के लिए इसे अपनाने का प्रयास किया, और यह केवल तभी काम किया जब मैंने आपकी कॉलबैक '=> कॉलबैक = सीबी' से' => सीबी (एआर) 'में बदल दी। यकीन नहीं है कि मैंने एक राक्षस हैक किया है या क्या ... – Benjol
ऊपर के लिए नकली कक्षा क्या है? क्या यह आपकी कक्षा है या मुझे इसका उपयोग करने के लिए कुछ संदर्भ जोड़ने की ज़रूरत है? –