2012-08-26 4 views
1

xml과 json을 모두 받아 들일 수있는 WCF의 편안한 서비스에서 한 가지 게시 메서드를 만드는 방법을 찾고 있습니다. 요청 헤더를 기반으로 json/xml을 자동으로 반환하는 Get 메서드를 사용하면 가능하다는 것을 알 수 있습니다. 내가 생각할 수WCF 나머지 JSON과 XML을 모두 받아들이는 POST 메서드

하나 개의 솔루션은 다음과 같습니다

  1. 는 "스트림"으로 포스트 데이터 가져 오기를 문자열로 읽습니다.
  2. 요청 헤더를 확인하고 json 또는 xml에 deserialize하십시오.
  3. OutgoingResponse 형식을 적합하게 설정하고 응답을 반환합니다.

저는 # 1을 할 수 있지만 # 2와 # 3에 머물러 있습니다.

답변

1

Microsoft는 이미이 작업을 수행 했으므로 바퀴를 다시 만들지 마십시오.

public class DataController : ApiController 
{ 
    public void Post(DataModel model) 
    { 
     // Whether the body contains XML, JSON, or Url-form-encoded it will be deserialized 
     // into the model object which you can then interact with in a strongly-typed manner 
    } 
} 

public class DataModel 
{ 
    public string PropertyA { get; set; } 
    public string PropertyB { get; set; } 
} 

새 웹 API가 포함 된 ASP.NET MVC4를 무료로 다운로드 할 수 있습니다. http://www.asp.net/mvc/mvc4. 이것은 기본적으로 더 이상 지원되지 않는 WCF 웹 API의 최종 제품입니다. 원본 웹 API로 작성된 코드가 너무 많아서 스위치를 만드는 것이 실용적이지 않은 경우가 아니면 장기적으로 많은 시간을 절약 할 수 있습니다. 그렇지 않으면 결코 고칠 수없는 버그가있는 베타 제품에 갇히게됩니다.

+1

당신 말이 맞습니다. 웹 API는 최종 제품이므로 올바른 접근 방식입니다. 적은 노력으로 이제는 많은 시간을 절약 할 수 있습니다. 그것을 지적 주셔서 감사합니다. –

관련 문제