Mam problemy z serializowaniem obiektów do JSON, a będąc nowicjuszem w WCF, mam problemy z tym, od czego zacząć w zakresie debugowania. Wszystko, co dostaję, gdy trafię w usługę, wpisując adres URL w przeglądarce, strona nie jest dostępna.Debugowanie usługi WCF, która nie będzie serializować obiektów
Scenariusz: posiadam klasę A, która dziedziczy listę klas B. Jeśli skomentuję w klasie A, w której dodaje on swoją kolekcję, mogę przynajmniej trafić w usługę (oczywiście nie będzie żadnych danych), ale jeśli doda ją do swojej kolekcji, nie będę już mógł jej użyć.
interfejsu:
<OperationContract()> _
<WebGet(UriTemplate:="getAdverseReactions", responseFormat:=WebMessageFormat.Json)> _
<ServiceKnownType(GetType(AdverseReactions))> _
<ServiceKnownType(GetType(AdverseReaction))> _
Function GetAdverseReactions() As AdverseReactions
interfejs wykonawcze:
Public Function GetAdverseReactions() As AdverseReactions Implements IPortalCoreService.GetAdverseReactions
Return CoreServiceController.GetAdverseReactions()//which returns class A
End Function
Klasa A:
<CollectionDataContract(Name:="AdverseReactionsCollection", ItemName:="AdverseReaction")> _
Public Class AdverseReactions
Inherits List(Of AdverseReaction)
Klasa B:
<DataContract(IsReference:=True)> _
Public Class AdverseReaction
Przekroczyłem kod, dołączając proces, i nie są zgłaszane żadne wyjątki, a ja mogę potwierdzić, że obiekty są zwracane tak, jak powinny, po prostu nie mogę ich przekształcić do postaci szeregowej. Czytałem o odwołaniach cyklicznych, a mój przyjaciel sugerował, że te dwie klasy mogą serializować się nawzajem w nieskończony sposób.
Moje główne pytanie: czy jest miejsce, w którym mogę sprawdzić, dlaczego tak się dzieje, lub przynajmniej więcej informacji na jego temat? Ten problem mnie obchodzi, chcę tylko serializować to, a kiedy to zrobię, zrobię sobie tygodniowy urlop :).
Czy to musi być usługa 'WCF', czy jest to, co wybrałeś, aby ją wdrożyć? –
@KarlAnderson Tak, to prawda. Pracuję z istniejącą bazą kodu. –