2017-11-16 11 views
0

저는 웹 서비스 작업에 익숙합니다. 나는 내가 고객에게WCF POST json 객체

이 내 모델이다 오브젝트 보낼 수 없음을 검색 또는 목록 작동하지만, 문제에 대한 내 안드로이드 app.Solution 작업을 위해 웹 서비스를 만드는 것입니다 시도하고 그들이 매핑 :

public class Address 
{ 
    public virtual int ID { get; set; } 

    public virtual int CustomerID { get; set; } 


    public virtual String City { get; set; } 


    public virtual String Phone { get; set; } 
} 


[DataContract] 
public class Customer 
{ 
    [DataMember] 
    public virtual int ID { get; set; } 

    [DataMember] 
    public virtual String Name { get; set; } 

    [DataMember] 
    public virtual int Age { get; set; } 

    [DataMember] 
    public virtual String SurName { get; set; } 

    [DataMember] 
    private IList<Address> address = new List<Address>(); 

    [DataMember] 
    public virtual IList<Address> Addresses 
    { 
     get { return address; } 
     set { address = value; } 
    } 
} 

그리고 나는이 방법을 시도하지만

[WebInvoke(Method = "POST", 
    UriTemplate = "CreateCustomer/", 
    RequestFormat = WebMessageFormat.Json, 
    ResponseFormat = WebMessageFormat.Json)] 
    public Customer CreateCustomer(Customer customer) 
    { 
     //Customer customer = JsonConvert.DeserializeObject<Customer>(CustomerJson); 
     if(customer == null) 
     { 
      throw new ArgumentNullException("FAIL"); 
     } 
     CustomerManager cm = new CustomerManager(); 
     cm.CreateCustomer(customer); 

     return customer; 
    } 

작동하지 않습니다 그리고 그

public Customer CreateCustomer(Customer customer) 
    { 
     ISession session = this.GetSession(); 
     using (var tx = session.BeginTransaction()) 
     { 
      try 
      { 
       this.GetSession().Save(customer); //new NHibernateSessionManager().GetSession();    
       this.GetSession().Save(customer.Addresses); 
       tx.Commit(); 

      } 
      catch 
      { 
       tx.Rollback(); 
      } 
     } 
     return customer; 
    } 
NHibernate에

내 생성 방법 조언을 위해

고맙습니다. 이 같은 CreateCustomer() 방법보기는

+0

는 던져합니까? 그러면 오류가 무엇입니까? – 3615

+0

나는 그것을 시도한다 : http : // localhost : 56394/Service1.svc/CreateCustomer/Method not allowed; 내가 "{"주소 ":"나이 ": 33,"ID ": 1044,"이름 ":" ","SurName ":"Ak ","주소 ": []} 서버 오류 ' ' 신청. 스택 추적 : [HttpA 잠재적으로 위험한 Request.Path 값이 클라이언트 (:)에서 감지되었습니다. 설명 : 현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다. –

+2

WCF는 사용자의 요구에 조금 무거합니다. 애플리케이션을 서비스하기 위해 웹 API 앱을 만드는 방법을 살펴 보는 것이 좋습니다. – phuzi

답변

0

을 안 :

public Customer CreateCustomer(Customer customer) 
{ 
    using (var session = this.GetSession()) 
    using (var tx = session.BeginTransaction()) 
    { 
     try 
     { 
      session.Save(customer); 
      session.Save(customer.Addresses); // This could be omitted with cascade 

      tx.Commit(); 
     } 
     catch 
     { 
      tx.Rollback(); 
     } 
    } 

    return customer; 
} 
+0

실제로 작업이지만 내 의견을 바꾸기로했습니다. Test Console 응용 프로그램에서 POST 작업을 시도합니다. 내 생각에, 때 데이터를 쓰는 POST 작업을 사용하여 Json 좋은 생각이 URL을 URL을 생각합니다. 도움을 청합니다. –