WebService zwracający customowe klasy

0

Witam,

Mam pytanie do osób, które maja pomysł na zwracanie przez WebService customowych klas. Mianowicie na serwerze, w kodzie serwisu wykorzystuje dwie klasy

public class A {
    public int ID { get; set; }
    public List<B> kolekcjaKlasyB { get; set; }

    public A() {}

public class B {
    public int ID { get; set; }
    public string Nazwa { get; set; }

    public B() {}

W serwisie mam metodę, która zwraca kolekcje List<A>. Tak przygotowany kod został zdeployowany na serwer i podpięty do projektu, który łączy sie z tym serwisem. Wszystko działa, ale tylko częściowo gdyż kolekcja obiektów A została pobrana prawidłowo ale kolekcja obiektów B juz jest niedostępna... W Object browserze widzę tylko klasę A ale B juz jest niewidoczny.

Może ktoś poratować wytłumaczeniem jak to poprawnie napisać?

0

Kwestia standardów pomiędzy technologiami, tutaj wyjaśnienie: http://stackoverflow.com/questions/4249000/why-we-cant-return-listt-in-asmx-web-services
A poza tym w zasadzie to się da, tylko trzeba zserializować swoją klasę do np. xml'a.

0

Czyli z tego wynika, ze najlepiej List<T> zmienić na tablice obiektów? Jeśli nawet nie używać .ToArray() to użyć zwykłego

public B[] BArray

Natomiast co do drugiego rozwiązania to do obiektu Response dodać zserializowany obiekt XML/JSON?

AHA - nawet jeśli zmienię List na inną kolekcję to rozwiążę kwestię przesyłania kolekcji. Nie mogę mimo wszystko uzyskać definicji klasy B. Używając przestrzeni nazw service'u, mogę stworzyć obiekt A ale nie mogę utworzyć obiektu B... WHY? Może zapomniałem opisać klasy dekoratorami?

Jeszcze zapomniałem dodać - kolekcja, którą tworzy service, jest otrzymana jako ExtensionDataObject ale nie wiem jak go parsować na jakąkolwiek kolekcje. Co więcej w debuggerze obiekt wydaje się pusty...

1 użytkowników online, w tym zalogowanych: 0, gości: 1