2017-10-09 2 views
-1
Using client = New HttpClient() 
     Dim task = client.SendAsync(request) 
     Dim response1 = Await 'task(of system.net.http.httpresponsemessage) 
     Dim response = Await client.SendAsync(request) ' object? 
     If response.IsSuccessStatusCode Then 'this cause late binding error because response is of type object and hence doesn't support issuccessstatuscode 
      '{"Success":true,"Error":null,"Data":[{"CurrencyId":2,"Symbol":"DOT","Total":9646.07411016,"Available":9646.07411016,"Unconfirmed":0.0,"HeldForTrades":0.0,"PendingWithdraw":0.0,"Address":"1HEfio1kreDBgj5uCw4VHbEDSgc6YJXfTN","Status":"OK","StatusMessage":null}]} 
      Console.WriteLine(Await response.Content.ReadAsStringAsync()) 
     End If 
    End Using 

Je me demande pourquoi.Pourquoi le type de réponse1 ici est-il simplement objet?

Je pense que type de réponse et response1 devrait être

system.net.http.httpresponsemessage

pourquoi il est juste objet?

Je pensais que l'opérateur attendrait de sortir task(of something) en something.

En plus j'ai eu

Option Explicit On 
Option Strict On 
Option Infer On 

Voici une capture d'écran où les conseils hover disent que le type de response1 est objet

enter image description here

Voici une capture d'écran studio visuel se plaindre de la liaison tardive parce que le type de réponse1 est l'objet

enter image description here

Voici une capture d'écran pour laquelle je n'ai pas d'assembly system.thread disponible. En fait, seul un ensemble commence par system.t ... est des transactions système

enter image description here

+0

Je viens de coller votre code dans un nouveau projet de console et Intellisense indique que 'response' et' response1' sont de type 'HttpResponseMessage', comme vous pouvez vous y attendre. La seule raison pour laquelle je peux voir qu'ils ne le seraient pas est que vous avez 'Option Infer' et' Option Strict' à la fois 'Off', mais alors vous n'aurez aucun problème avec la liaison tardive. Je pense que votre projet peut être cassé. Je suggérerais d'essayer un nouveau projet de test pour voir s'il se comporte de la même manière. – jmcilhinney

+0

Peut-être que j'avais une mauvaise édition de Visual Studio? J'ai eu une erreur de compilation sur les deux. Aucune option infer et option strict ne devrait être activée. Laissez-moi vérifier à nouveau –

+0

Voir la capture d'écran? –

Répondre

2

Il semble que la question était que le projet visait .NET 4.0, auquel cas les types Task et Task(Of T) sont pas accessible sans une référence à System.Threading.Tasks.dll. .NET 4.5 et versions ultérieures déclarent ces types dans mscorlib.dll.

+0

He il je veux juste montrer un peu d'appréciation pour votre aide. Je ne serai pas capable de comprendre cela sans toi. –

+0

Appréciez l'appréciation. – jmcilhinney