Ben kabaca şöyle bir sınıf vardır:Bu asenkron yöntemle nasıl dalga geçebilirim?
Ben BeginGetStaticReferenceData o geri arama yöntemini çağırmak yapabiliyor çağrıldığında böylece benim IWebService arayüzünü taklit istiyorpublic 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);
}
.
.
.
}
. Moq kullanıyorum ve bunu nasıl yapacağımı bilemiyorum. - Ben kolayca yerine MOQ kullanmaya adapte edilebilir eminim
//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);
.
.
Başar, bu büyük çalıştı. Teşekkür ederim! – Charlie
Bunu UdpClient için uyarlamayı denedim ve yalnızca geri aramalarınızı '=> callback = cb' -' => cb (ar) 'arasında değiştirdiysem çalıştı. Bir canavar ya da ne hack ettim emin değilim ... – Benjol
Yukarıdaki için Mock sınıfı nedir? Bu sizin sınıfınız mı yoksa kullanmak için biraz referans eklemem gerekiyor mu? –