/ / Problem obiektów sieci ASMX - serwisy internetowe, asmx

Problem obiektów sieciowych ASMX - serwisy internetowe, asmx

Aktualnie pracuję nad niektórymi sieciami usług internetowych (serwisy ASP.NET 3.5). Moja warstwa biznesowa jest podobna dla wszystkich usług - oznacza to, że mam te same struktury z tymi samymi polami w każdej usłudze.

Ale kiedy przekazuję te struktury między usługami, za każdym razem, gdy potrzebuję przekształcenia z typu globalnego na typ lokalny, na przykład:

Jeśli mam metodę zwracającą instancję struct.

[WebMethod]
public MyObject MyMethod () {
return new MyObject();
}

Kiedy wołam to z usługi klienta, piszę coś takiego:

OuterService proxy = new OuterService();
global::MyObject obj = proxy.MyMethod();

Gdzie OuterService jest instancją klasy generowanej przez wsdl.exe. A następnie, aby przekazać go do następnej usługi, muszę przetransformować ją z pola typu globalnego na typ lokalny według pola i właściwości według właściwości.

Moje pytanie brzmi:

Czy istnieje jakieś eleganckie rozwiązanie do przekazywania tych obiektów bez transformacji na każdym poziomie?

Myślałem o stworzeniu uniwersalnej warstwy biznesowejdla wszystkich usług sieciowych (które na przykład mogą być zadeklarowane jako usługa sieciowa), ale żeby to zrobić, muszę zmienić zbyt wiele rzeczy i myślę, że musi być łatwiejsze rozwiązanie tego, zapewnione przez framework.

Odpowiedzi:

0 dla odpowiedzi № 1

Wystarczy użyć "Dodaj odniesienie do usługi". Domyślnie współużytkuje typy znajdujące się w złożeniach, do których odwołuje się twój projekt. Wystarczy dodać odniesienie do zestawu zawierającego typy, użyć "Dodaj odniesienie do usługi" lub "Zaktualizuj referencję serwisową" i powinieneś wszystko ustawić.


0 dla odpowiedzi nr 2

Możesz domyślnie udostępniać typy na granicach usług sieciowych - ale istnieją pewne obejścia, takie jak ten artykuł pokazuje

Mam nadzieję że to pomoże