2015-01-10 3 views
-1

Я хочу использовать этот код:Почему WebClient неразрешима?

public void SendFile(string uri, string filepath) 
{ 
    using (var client = new WebClient()) 
    { 
     client.Headers.Add("Content-Type", "application/xml"); 
     byte[] response = client.UploadFile(uri, "POST", filepath); 
     return Encoding.ASCII.GetString(response); 
    } 
} 

... но я получаю страшный «тип или пространство имен имя„WebClient“не может быть найден (вы недостающую с помощью директивы или ссылка на сборку?) "

Согласно this, WebClient является, доступным в .NET 3.5 (это проект .NET 3.5/Windows CE).

Это неоправданно, потому что это проект Windows CE/Compact Framework, который Visual Studio притворяется, что он не распознает WebClient? Есть ли обходной путь, или я снова обречен?

+7

_are Вы не нашли с помощью директивы или ссылка на сборку? _ –

+0

По этой ссылке, это в системе ссылка, на которую я действительно ссылаюсь, и у меня есть «использование System.Net»; слишком. –

+0

Да, и я снова закончил использовать код ctacke с этого поста, который я где-то спрятал. –

ответ

1

То, как вы интерпретируете ссылки MSDN, совершенно неверно, но понятно.

Microsoft решила создать .NET Compact Framework/XNA/Silverlight «изолированным» способом, поэтому вы не можете полагаться на общие ссылки MSDN, чтобы узнать, доступен ли класс в таких разорванных рамках.

http://msdn.microsoft.com/en-us/library/w8xd02k7(v=vs.90).aspx

http://msdn.microsoft.com/en-us/library/ms172548(v=vs.90).aspx

И Visual Studio рационально следуя этим правилам разрешения, чтобы сказать вам, что WebClient класс не существует.

Разработчики, которые нацеливают CF, обречены на то, что при ударе по пропущенным классам вы должны искать альтернативы и иногда копировать исходный код Mono для выполнения некоторых задач.

Поскольку открытые источники .NET исходного ядра Microsoft кода, вы можете также скопировать их исходные файлы, как только имеющиеся в https://github.com/dotnet/corefx