2017-11-16 4 views
0

私はWebサービスオペレーションの新機能です。私は、検索またはリスト操作のための私のアンドロイドapp.Solution作業のためのWebサービスを作成しようとしていますが、問題は、私は顧客WCF POST jsonオブジェクト

これらのオブジェクトに送信することができないということである私のモデルであり、彼らはマッピングされた:

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; 
    } 

動作しない、それが私のNHibernateの

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; 
    } 
でメソッドを作成していますアドバイスを求めるには

thanx

+0

それが投げるのか?その後、何がエラーですか? – 3615

+0

私はそれを試みます:http:// localhost:56394/Service1.svc/CreateCustomer/Method not allowed;私は、 ""アドレス ":"年齢 ":33、" ID ":1044、"名前 ":"として "、" SurName ":" Ak "、"アドレス ":[]} ' 応用。 スタックトレース: [HttpA潜在的に危険なRequest.Path値がクライアント(:)から検出されました。 説明:現在のWeb要求の実行中に、未処理の例外が発生しました。 –

+2

WCFはあなたのニーズに少し重いです。アプリケーションにサービスを提供するWeb APIアプリケーションを作成することをお勧めします。 – phuzi

答えて

0

CreateCustomer()方法は次のように見てはいけない:

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にデータを書くのは良い考えではない。 Thnxのヘルプ。 –

関連する問題