alınırken yansımasız, genel bir yöntem yansıtma başarısız çağrılıyor İyi tanımlanmış bir modele sahip iyi tanımlanmış bir web API'sine bir LINQ sağlayıcısı oluşturmaya çalışıyorum.Özel LINQ sağlayıcısı, Task.Result nesnesi
tüm parçaları sağlayıcılarına araya gereken kısmı gidene kadar İyi gidiyordu Yürütme olmayan bir jenerik vardır: Bunları walkthroughs takip ediyorum Özel bir HTTPRequest sınıfının eşzamansız bir yönteminin yansıma kullanılarak çağrıldığı ve parçanın çok iyi çalıştığı yöntem, sorun, döndürülen Görev nesnesindeki Sonuç özelliğinin değerini almaya çalışırken, bir TargetException deyimiyle başarısız olur "Ek bilgiler : Nesne, hedef türüyle eşleşmiyor. Ben iade edilmesi gereken nesne IEnumerable olması gerektiğini düşünüyordum ve ne geliyor
public override object Execute(Expression expression)
{
var elementType = TypeSystem.GetElementType(expression.Type);
var task = GetResult(expression, elementType);
var resultProperty = typeof (Task<>).MakeGenericType(elementType).GetProperty("Result");
//It fails here!
var result = resultProperty.GetValue(task);
return result;
}
private async Task GetResult(Expression expression, Type elementType)
{
var requestUrl = Translate(expression);
var method = _httpRequest.GetType().GetMethod("GetHttpRequest").MakeGenericMethod(new[] { elementType });
var task = (Task) method.Invoke(_httpRequest, new object[] { requestUrl });
await task;
}
:
Bu
diğer parçaları alakalı olduğunu sanmıyorum, istisna olur koddur Sonuç mülkiyeti dışında tek bir T ve bunu ele almak zorunda kalacağım ama mevcut istisnanın sebebi olduğuna inanmıyorum.Herhangi bir yardım için teşekkür ederiz.
'async Task GetResult' Bu yöntemden döndürülen görev beklediğiniz gibi değil, dolayısıyla sonuç yok. –