2015-05-14 4 views
26

Gibt es eine Möglichkeit, eine WebClient in einer .NET Core-Anwendung zu verwenden? Wenn ich die Anwendung zu erstellen ich die folgende Fehlermeldung erhalten:Wie verwende ich den WebClient mit .NetCore?

Severity Code Description Project File Line 
Error CS0246 The type or namespace name 'WebClient' could not be found (are you missing a using directive or an assembly reference?) 

Ich denke, WebClient ist kein Teil von .NET-Core, aber gibt es eine Alternative?

+5

Ich sehe nicht, 'WebClient', wo jeder in der corefx Repo,' HttpClient' wäre wahrscheinlich die Alternative sein. –

+2

Ich habe "Microsoft.Net.Http.Client": "1.0.0-beta3-10053" in project.json hinzugefügt und ich kann einen neuen HttpClient instanziieren. Und es funktioniert sogar mit .NetCore. Vielleicht ist es der einzige Zweck, damit umzugehen. – TimBoss

+0

Mögliches Duplikat von [System.Net.Webclient funktioniert nicht 'WebClient' konnte nicht gefunden werden] (http://stackoverflow.com/questions/19164900/system-net-webclient-not-working-webclient-could-not-be) (gefunden) –

Antwort

26

Ab .Net Standard 2.0 ist der WebClient jetzt für alle Implementierungen des Standards verfügbar, einschließlich .Net Core. Die Stack Overflow-Frage "Need help deciding between HttpClient and WebClient" enthält jedoch einige ziemlich gute Antworten darauf, warum Sie stattdessen die HttpClient verwenden sollten.

Einer der genannten Nachteile ist, dass es in der HttpClient keine integrierten Fortschrittsberichte gibt. Da es Streams verwendet, ist es jedoch möglich, eigene zu schreiben. Die Antworten auf "How to implement progress reporting for Portable HttpClient" bieten ein Beispiel für die Meldung des Fortschritts des Antwortstreams. Wenn Sie auf frühere Versionen des Standards abzielen, müssen Sie HttpClient verwenden, da WebClient vor dem .Net Standard 2.0 nicht verfügbar ist.

+0

Es sollte auf System.Net.Http in Version 1.2.0 https://github.com/dotnet/corefx/issues/11794 gebaut werden – arielorvits