2016-01-08 4 views
1

Я пытаюсь следовать примеру через Pluralsight видеоИмя типа или пространства имен «Http» не существует в пространстве имен «System.Net» (пропущена ссылка на сборку?)

https://app.pluralsight.com/player?course=aspdotnet-5-ef7-bootstrap-angular-web-app&author=shawn-wildermuth&name=aspdotnet-5-ef7-bootstrap-angular-web-app-m7&clip=8&mode=live&start=2

Когда я пытаюсь заполнить Api, чтобы добавить координаты, я получаю сообщение об ошибке:

Тип или имя пространства имен «Http» не существует в пространстве имен «System.Net» (вам не хватает ссылки на сборку?)

Это ха ppening на следующий класс:

using Microsoft.Extensions.Logging; 
using System.Net; 
using System.Threading.Tasks; 
using Newtonsoft.Json.Linq; 
using System.Net.Http; 

namespace Moran.Services 
{ 
    public class CoordService 
    { 
     private ILogger<CoordService> _logger; 

     public CoordService(ILogger<CoordService> logger) 
     { 
      _logger = logger; 
     } 

     public async Task<CoordServiceResult> Lookup(string location) 
     { 
      var result = new CoordServiceResult() 
      { 
       Success = false, 
       Message = "Undetermined failures while looking up coordinates" 
      }; 
      //Lookup Coordinates 
      var bingKey = Startup.Configuration["AppSettings:BingKey"]; 
      var encodedName = WebUtility.UrlEncode(location); 
      var url = $"http://dev.virtualearth.net/REST/v1/Locations?q={encodedName}&key={bingKey}"; 

      var client = new HttpClient(); 

      var json = await client.GetStringAsync(url); 

      // Read out the results 
      // Fragile, might need to change if the Bing API changes 
      var results = JObject.Parse(json); 
      var resources = results["resourceSets"][0]["resources"]; 
      if (!resources.HasValues) 
      { 
       result.Message = $"Could not find '{location}' as a location"; 
      } 
      else 
      { 
       var confidence = (string)resources[0]["confidence"]; 
       if (confidence != "High") 
       { 
        result.Message = $"Could not find a confident match for '{location}' as a location"; 
       } 
       else 
       { 
        var coords = resources[0]["geocodePoints"][0]["coordinates"]; 
        result.Latitude = (double)coords[0]; 
        result.Longitude = (double)coords[1]; 
        result.Success = true; 
        result.Message = "Success"; 
       } 
      } 
      return result; 
     } 
    } 
} 

Это происходит, когда я пытаюсь добавить

var client = new HttpClient(); 

Любая идея, почему это происходит?

я не могу найти причину, почему она не компилируется ....

ответ

5

HttpClient класс находится в System.Net.Http пространстве имен, который находится в System.Net.Http.dll. Чтобы использовать этот класс в проекте ASP.NET 5, Вам нужно добавить System.Net.Http к "dependencies" секции данных JSon внутри файла project.json

"dependencies": {  
    "Microsoft.AspNet.Diagnostics": "1.0.0-beta5", 
    "Microsoft.AspNet.Mvc": "6.0.0-beta5", 
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta5", 
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta5", 
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta5", 
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta5", 
    "Microsoft.AspNet.Tooling.Razor": "1.0.0-beta5", 
    "Microsoft.Framework.Configuration.Json": "1.0.0-beta5", 
    "Microsoft.Framework.Logging": "1.0.0-beta5", 
    "Microsoft.Framework.Logging.Console": "1.0.0-beta5", 

    "System.Net.Http": "4.0.1-beta-23409" 

    }, 

4.0.1-beta-23409 последняя версия на момент написания статьи. Visual studio intellisense предоставит вам несколько доступных версий, и вы сможете выбрать последнюю/стабильную.

После внесения этих изменений, при сохранении файла, он будет делать ДНУ восстановить (которые обычно загрузит необходимые пакеты по мере необходимости) и добавить ссылку на System.Net.Http сборка. Вы можете добавить инструкцию использования в свой класс и начать использовать класс HttpClient.

using System; 
using System.Net.Http; 
public class SomeClass 
{ 
    public void SomeMethod() 
    { 
    var client = new HttpClient(); 
    } 
} 
+0

спасибо !! Это действительно помогло мне. –

Смежные вопросы

 Смежные вопросы