2016-08-16 3 views
3

최근 Mac 용 xamarin studio를 다운로드하여 설치했습니다. 나는 완전한 초보자이므로 xamarin으로 C# 코딩을위한 튜토리얼을 시작했다. 그들은 HttpClient를 사용할 수 있도록 튜토리얼 동안 그들은 그들의 프로젝트에 xamarin에 HttpClient가 없습니다.

System.Net.Http

를 사용하여 HttpClient를 사용하고

를 추가합니다. 나는 동일한 기능을 수행 할 수 없습니다 만 이것은 PCL 프로젝트였다

System.Net.NetworkInformation

를 사용

의 옵션을 가지고 있었다. 또한 캐시, 메일, 소켓, 웹 소켓, 보안 등을 포함한 더 많은 옵션을 제공하는 공유 라이브러리 프로젝트를 시도했습니다.

나는 뭔가를 놓쳤거나 잘못 생각하고 있습니다.

답변

1

PCL은 그 자체로 가장 기본적인 .NET 기능 만 포함하고 있습니다. 비즈니스 논리와 응용 프로그램 흐름을 PCL로 작성할 수 있지만 플랫폼에 따라 다르므로 하드웨어와 어떻게 든 상호 작용하는 대부분의 라이브러리를 참조 할 수는 없습니다.

이 문제에 대한 두 가지 해결책이 있습니다 :

  • 종속성 주입다음 PCL이 인터페이스를 정의하고 플랫폼 별 어셈블리는이 인터페이스의 구현을 제공 -이 구현은 모든 참조 할 수 있습니다 플랫폼에서 사용할 수있는 라이브러리

  • 미끼 및 스위치 : 모든 이러한 방법의 적절한 구현이 각 플랫폼에 대해 동일한 서명과 별도의 라이브러리를 NotSupportedException이을 던져 포함, 당신이 필요로하는 모든 방법으로 PCL을 만들 수 있습니다. 컴파일러는 특정 플랫폼의 라이브러리 만 포함합니다. 나는 이것을 개인적으로 약간의 트릭이라고 생각하지만 대부분의 NuGet 패키지가 "PCL로"직접 사용할 수있는 기능을 제공하는 방법입니다.

0

HttpClient 클래스에 액세스하는 데 추가 패키지가 필요하지 않습니다. 나는 거의 모든 프로젝트에서 이미 거의 2 년 동안 그것을 사용 해왔다. 예 :

enter image description here

내가 제안하는 것 :

로 이동 : Edit References => Packages => Check System.Net.Http. 거기에 있어야합니다.

다음 여기에서 수동으로 참조 당신이 그것을 찾을 수 없습니다, 또는 목록은 Packages (버그의 일종)에서 비어있는 경우 : /Library/Frameworks/Mono.framework/Versions/4.4.2/lib/mono/4.5-api

+0

흠 ... 난 그냥이에 대한 모노에있었습니다 실현 동안. https://forums.xamarin.com/discussion/7719/using-httpclient를 참조하십시오. Microsoft.Net.Http를 사용해야하는 곳을 기억하지 마십시오. –