저는 Json 데이터를 보내고받는 REST 기반 WCF 서비스를 만들어보고 놀았습니다. 나는 대부분의 일을 할 수 있지만,이 마지막 작품은 정말 나를 곤란하게했다.REST, json, .Net4 및 복합 데이터 유형
서비스에 복잡한 데이터 유형을 보내고 있습니다. 데이터를 보내 겠지만 클래스가 인스턴스화되지 않은 것처럼 보입니다. (별도의 클래스 파일)
클래스 선언 :
public class WhereItsAt
{
public float Latitude { get; set; }
public float Longitude { get; set; }
public string Category { get; set; }
public string SearchTerms { get; set; }
public float Distance { get; set; }
}
[WebInvoke(Method = "POST", UriTemplate = "/New", RequestFormat = WebMessageFormat.Json)]
public string Create(WhereItsAt newstuff)
{
return string.Format("Success: {0} <Should show search terms here>", newstuff.SearchTerms);
}
문제는 그 (OK, newstuff 모두)는 null 또는 0
내 클래스를 수정하는 경우 newstuff.SearchTerms :
public class WhereItsAt
{
public float Latitude { get; set; }
public float Longitude { get; set; }
public string Category { get; set; }
public string SearchTerms { get{return "hello"}; set; }
public float Distance { get; set; }
}
데이터를 반환합니다.
내가 피들러와 전화 해요 :
POST http://127.0.0.1:8835/testing/New
HTTP/1.1 사용자 에이전트 : 피들러 호스트 : 127.0.0.1:8835 콘텐츠 길이 : 122 콘텐츠 형식 : 응용 프로그램/JSON; 문자셋 = UTF-8
[{ "위도": 43.34, "경도": 45.234, "카테고리": "아직 설정되지 않음", "의 SearchTerms": "시내", "거리": 12.234을}]
내 수업이 인스턴스화되지 않은 것처럼 보입니다. 세트에 더미 코드를 만들었습니다.
{set {int i = 1;};
하지만 집합에 중단 점을 만들면 절대로 호출되지 않습니다.
내가 뭘 잘못하고 있니?
보기 ... DataContract와 DataMember를이 데이터 모델에 속성을 추가해야합니다. 아직도 똑같은 일을합니다. – Carl
Fiddler 테스트 데이터의 문제로 판명되었습니다. 나는 []를 동봉했다. 내가 그것을 보았는지 확실치 않으며, Fiddler의 파서는 불평하지 않았다. – Carl