Передача объекта класса в WebService - PullRequest
1 голос
/ 29 октября 2011

Как я могу передать объект класса 'obj' класса 'BL_Customer' из моего веб-приложения в функцию 'Insert ()' в моем веб-сервисе (ASMX), а затем получить доступ к свойствам этого объекта в веб-сервисе ?.Я включил свой удаленный веб-сервис с помощью функции «Добавить веб-ссылку».Я включил «использование WebRererence;»пространство имен тоже.Мы будем благодарны за любую помощь.

Это мой класс BL_Customer в бизнес-уровне:

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

}

Это мой уровень доступа к данным:

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 Service : System.Web.Services.WebService
{   
   public Service () {
    }

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

    }
}

С уважением, Дэвид

Ответы [ 2 ]

4 голосов
/ 29 октября 2011

В зависимости от технологии, которую вы используете для создания веб-службы, могут быть разные способы для достижения этой цели. Если вы используете устаревшие веб-службы ASMX, вы добавите метод, который будет принимать в качестве параметра необходимый вам класс:

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

Если вы используете WCF, которая является рекомендуемой технологией для создания веб-сервисов в .NET, вы должны составить контракт на обслуживание:

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

В обоих случаях для использования службы вы создадите строго типизированный прокси на клиенте. Еще раз рекомендуется использовать диалоговое окно Добавить ссылку на службу в Visual Studio для создания строго типизированного прокси, указав его на WSDL веб-службы. Затем вы будете вызывать метод:

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

И если ваш клиент построен на pre-.NET 3.0, вам потребуется использовать диалоговое окно «Добавить веб-ссылку» в Visual Studio для генерации клиентского прокси.

0 голосов
/ 29 октября 2011

Если вы определите класс «Bill» в своем веб-сервисе, вы сможете использовать его как в своем веб-приложении, так и в веб-сервисе. Я не уверен, есть ли способ использовать классы, которые были определены в приложении на веб-сервисе, но я думаю, что это не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...