Yeni bir .NET 4.0 projesi başlatıyorum ve bir API ile bazı işler yapıyor olacağım. Microsoft HttpClient sınıfını kullanmayı planlıyorum, bu yüzden Microsoft.Net.Http NuGet paketinin en son kararlı sürümünü kurdum (sürüm 2.2.13). Ben de HttpClient için Nuget paketini kullanarak, iş arkadaşı araya bazı POC koduna bakarak ve bunun gibi kod olduğunu fark ediyorum: ProjemdeHttpClient ve ReadAsAsync <T>() uzantı yöntemi
HttpClient client = new HttpClient();
HttpResponseMessage response = client.GetAync("/uri").Result;
DomainType result = response.Content.ReadAsAsync<DomainType>().Result;
, Microsoft.Net referansı ekledikten sonra. Http paketi, benzer kod yazmaya çalıştığımda, HttpResponseMessage'ın ReadAsAsync<T>()
yöntemine sahip olmadığını fark ettim. İş arkadaşımın POC çözümüne biraz kazma yaptıktan sonra, ReadAsAsync<T>()
, aslında System.Net.Http.Formatting
derlemesinde bir uzantı yöntemidir. Bu POC çözümünde, System.Net.Http.Formatting dosyasına bir başvuru var, ancak bu dosyayı C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies\System.Net.Http.Formatting.dll
yolundan çekiyor.
Sorum şu: Bu uzantıya yerel ASP.Net kurulumumdan bu derleme başvurmaktan daha iyi bir çözüm var mı? Benim endişem, bunun, ASP.Net'in kurulu olması pek olası olmadığından CI sunucumuzda bir soruna neden olacağıdır. Sanırım System.Net.Http.Formatting'i çözümümdeki bir Lib dizinine kopyalayabilirim ama umarım başka bir NuGet paketi gibi daha iyi bir seçenek var.
Teşekkürler!
Eğer derlemeyi kullanmak istiyorsanız, (uzantı yöntemi ya da alakasız), bir yol ya da başka bir şekilde başvurmanız ve oluşturduğunuzda dahil edildiğinden emin olmanız gerekir. 'C: \ Program Files ...' yolu, konuşlandırıldığı sunucuda önemli olmamalıdır. –
Doğru, teşekkürler, ancak montaj referanslarının nasıl çalıştığını anlıyorum. C: \ Program Files ... ile ilgili sorun, bu yolun CI sunucumuzda bulunmasının muhtemel olmamasıdır. Gördüğüm kadarıyla, bu derlemeyi çözümümün altında bir Lib dizinine kopyalayabilirim, böylece kaynak kontrolüne eklenir ve çözüm oluşturduğunda CI tarafından alınır ya da tercihen başka bir NuGet paketi bulunur. içindeki montaj. –