2011-10-29 11 views
1

Webサービスのクラス 'BL_Customer'のクラスオブジェクト 'obj'をWebサービス(ASMX)の関数 'Insert()'に渡して、そのプロパティにアクセスするにはどうすればよいですかウェブサービスのオブジェクト?私は、リモートWebサービスを「Add WebReference」ファシリティに含めました。私は 'WebRererenceを使用しています。名前空間も。どんな助けもありがとう。クラスオブジェクトをWebServiceに渡す

これは、ビジネスレイヤでの私のBL_Customerクラス:デビッド

public class Service : System.Web.Services.WebService 
{ 
    public Service() { 
    } 

    [WebMethod] 
    public string insert(**What should be here?**) 
    { 
     ----- 
     ----- 

    } 
} 

よろしく、 :これは私のwebサービスです

public class DAL_Customer 
{ 
    public SqlConnection con = new SqlConnection(); 
    WebReference.Service objWEB = new WebReference.Service(); //objWEB -> Webservice object 
    Connection c = new Connection(); 
    public DAL_Customer() 
    { 
    } 
    public int Customer_Insert(BL_Customer obj) 
    { 
     --------- 
     --------- 
     return objWEB.Insert(obj); // Insert() is a function in my remote webservice 
    } 
} 

public class BL_Customer 
{ 
    public BL_Customer() 
    { 

    } 
    string c_Cust_Name = string.Empty;  
    string c_Mobile_no = string.Empty;  
    public string Cust_Name 
    { 
     get { return c_Cust_Name; } 
     set { c_Cust_Name = value; } 
    } 
    public string Mobile_no 
    { 
     get { return c_Mobile_no; } 
     set { c_Mobile_no = value; } 
    } 

} 

は、これは私のデータアクセス層であります

+0

ASMX WebサービスまたはWCF? – Damith

+0

@UnhandledException asmx –

答えて

4

Webサービスを構築するために使用しているテクノロジによっては、これを実現する方法が異なる場合があります。あなたは非推奨になりましたASMX Webサービスを使用している場合は、パラメータとして必要なクラスを取るメソッドを追加します。

[WebMethod] 
public void DoSomething(Person p) 
{ 
    ... 
} 

あなたは.NETでWebサービスを構築するための推奨テクノロジですWCFを使用している場合

[ServiceContract] 
public interface IMyService 
{ 
    void DoSomething(Person p); 
} 

どちらの場合でも、サービスを使用するには、クライアントに厳密に型指定されたプロキシが生成されます。 Visual Studioの[サービス参照の追加]ダイアログボックスを使用して、WebサービスのWSDLを指すことによって厳密に型指定されたプロキシを生成することをお勧めします。そして、あなたがメソッドを呼び出します:

using (var client = new MyServiceClient()) 
{ 
    Person p = new Person 
    { 
     FirstName = "john", 
     LastName = "smith" 
    }; 
    client.DoSomething(p); 
} 

そして、あなたのクライアントがpre-.NET 3.0上に構築されている場合は、クライアントプロキシを生成するには、Visual Studioの[Web参照の追加]ダイアログボックスを使用する必要があります。

+0

私はASMXを使用しています。 'TextBox3.Text = Convert.ToString(obj.Multiply(Convert.ToDouble(TextBox1.Text)、Convert.ToDouble(TextBox2.Text))))'。 **乗算**は私のWebサービスの関数です。今度は、クラスオブジェクトをMultiply関数 –

+0

@DavidJohnに渡したいと思っています。まず、Multiply Webサービスメソッドを変更して、現在実行している2つのdouble値の代わりにパラメータとして目的のオブジェクトを取得する必要があります。これを済ませたら、クライアントプロキシを再生成して、新しいメソッドシグネチャを反映させて使用する必要があります。 –

+0

@DavidJohn Webサービスを変更して、クラスを受け入れ、Webサービスの参照を更新するメソッドを乗せます。新しいクラスのオブジェクトをWebサービスメソッドに構文解析することができます – Damith

0

クラス 'Bill'をWebサービスで定義すると、WebアプリケーションとWebサービスの両方で使用できます。 Webサービスのアプリケーションで定義されたクラスを使用する方法があるかどうかはわかりませんが、そうではないと思います。

+0

@DavidJohnエンティティは、階層とは別に存在する必要があります。渡されるオブジェクトはすべての層から参照される必要があるため、すべての層はエンティティクラスライブラリに依存します。 – rie819

関連する問題