. 그래서 같이 :
public class HomeController : Controller
{
public HomeController()
{
}
public ActionResult List()
{
var service = new DogServiceClient("YourEndpoint");
var dogs = service.List();
return View(dogs);
}
}
을 그리고 당신의 Web.config에 당신은 당신의 엔드 포인트에 대한 구성을 배치 : 다음
[ServiceContract]
public interface IDogService
{
[OperationContract]
[WebGet(UriTemplate = "/api/dog")]
IEnumerable<Dog> List();
}
public class DogServiceClient : ClientBase<IDogService>, IDogService
{
public DogServiceClient(string endpointConfigurationName) : base(endpointConfigurationName)
{
}
public IEnumerable<Dog> List()
{
return Channel.List();
}
}
그리고 당신은 당신의 컨트롤러를 소비 할 수
<system.serviceModel>
<client>
<endpoint address="http://localhost/DogService" binding="webHttpBinding"
bindingConfiguration="" behaviorConfiguration="DogServiceConfig"
contract="IDogService" name="YourEndpoint" />
</client>
<behaviors>
<endpointBehaviors>
<behavior name="DogServiceConfig">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
+1 내 웹 앱의 내용과 똑같습니다. –
멋지게 보이지만, 비동기/기다리는 물건을 전혀 사용할 수 없습니다. IDE는 이러한 키워드를 좋아하지 않습니다. .NET 4.0을 사용하고 NuGet을 사용하여 웹 API 클라이언트 라이브러리를 설치했습니다. –
@GlennArndt 당신은 더 이상 행동을 취하지 않으면 .NET 4.0에서 async/await를 사용할 수 없습니다. 이 블로그 게시물을 참조하십시오 : http://blogs.msdn.com/b/bclteam/archive/2012/10/22/using-async-await-without-net-framework-4-5.aspx 비동기 컨트롤러 작업을 활용할 수 있습니다 비동기가 아니고 키워드를 기다리고 있지만 지저분 해집니다. – tugberk