Mam potrzebę przekazania niestandardowego obiektu do zdalnej usługi WWW. Czytałem, że może być konieczne wdrożenie ISerializable, ale zrobiłem to i napotykam trudności. Jaki jest właściwy sposób w języku C#, aby przekazać niestandardowy obiekt do metody usługi sieci Web?C# .NET Web Services - przekazywanie niestandardowych obiektów do usługi WWW
Odpowiedz
obiekty, które świadczą jako argumenty jako część żądania usług musi być oznaczona [Serializable] oraz w oparciu o niektóre odpowiedzi delegowanych przed kopaniem musisz się upewnić, że twój obiekt niestandardowy nie zawiera żadnych parametrów w konstruktorze.
Należy również pamiętać, że żadna logika wewnątrz klasy nie zostanie utworzona w klasie proxy, która zostanie utworzona po stronie klienta. Wszystko, co zobaczysz po stronie klienta, to domyślny konstruktor i właściwości. Jeśli więc dodasz metody do niestandardowych obiektów, pamiętaj, że klient ich nie zobaczy lub nie będzie mógł ich użyć.
To samo dotyczy dowolnej logiki, którą można umieścić w dowolnej z właściwości.
Przykład
[Serializable]
public class Customer
{
public int Id { get; set; }
public string Name { get; set; }
}
Jim, przepraszam, ale [Serializable] nie ma nic wspólnego z usługami sieciowymi. –
@John: Dlaczego nie?Czy XmlSerializer nie opiera się również na atrybucie [Serializable]? – fretje
Dodano przykład. Używam atrybutu [Serializable] przez cały czas, gdy potrzebuję serializacji niestandardowego obiektu. –
Edit: usunięto część o [Serializable]
Czy tworząc usługę, lub spożywania go?
Aby utworzyć obiekt, który można przekazać jako parametr metody internetowej, nie trzeba wykonywać żadnych specjalnych czynności. Tak jest, jeśli tworzysz usługę sieciową ASMX.
OTOH, jeśli tworzysz usługę WCF, musisz oznaczyć klasę [DataContract] i wszystkich członków, którzy mają zostać poddani serializacji za pomocą [DataMember].
Jeśli korzystasz z usługi internetowej, wówczas klasy proxy dla obiektu do przekazania powinny zostać wygenerowane po dodaniu odwołania do usługi. Po prostu musisz ich użyć.
Właściwie zarówno robię, jak i konsumuję. Wspomniałem o tym, co robiłem, ale wciąż otrzymuję skargi od VS o konieczności konstruktora bez parametrów w niestandardowym obiekcie (który dodałem, ale bez skutku). –
możesz podać odpowiedni kod i dokładnie * zażalenia * ;-) – fretje
Wygląda duplikatu tego question
W każdym razie, wszystkie obiekty biorące udział w interakcjach WS powinien być możliwy do serializacji XML, nie ISerializable (co jest serializacji binarnej). Ponadto powinny być opisane w umowie o świadczenie usług (WSDL), w przeciwnym razie klienci nie będą mogli ich konsumować. This article powinien być przydatny do zrozumienia serializacji XML z usługami sieciowymi XML.
Jednak, jeśli mówimy o naprawdę niestandardowych obiektach (tj. Każdym typie). Powinieneś rozważyć przekazanie ich w formie binarnej: jako kodowany base64 lub jako załącznik. Pytanie, które łączyłem, zawiera odpowiedź, jak to zrobić.
Spójrz na to question, aby zobaczyć, jak wdrożyć XML serializacji dla własnych obiektów
- 1. Przekazywanie niestandardowych obiektów z serwletu do JSP
- 2. Szyfrowanie w C# Web-Services
- 3. Usługi Azure Mobile Services a Web API
- 4. backbone.js Model Sync i C# .net RESTful web services
- 5. Przekazywanie tablicy C# obiektów COM do VB6
- 6. .NET Remoting, przekazywanie obiektów do metod
- 7. Aktualizowanie usługi sieci Web z programu ASMX do interfejsu WWW
- 8. C# NET HTTP.SYS serwer WWW
- 9. Uzyskiwanie dostępu do FacesContext z usługi WWW
- 10. Nie można utworzyć poświadczeń usługi Amazon Web Services (AWS).
- 11. Ustawianie limitu czasu usługi .NET Web Service
- 12. Porównywanie 2 niestandardowych obiektów - C#
- 13. Przekazywanie Safearray typów niestandardowych z C++ do C#
- 14. Azure Web API VS Mobile Services
- 15. Przekazywanie obiektów do UITypeEditor
- 16. Usługi Open Services systemu Windows
- 17. Restful web services
- 18. Web Services API Versioning
- 19. . Rejestracja usługi .NET w sieci Web
- 20. Jak programowo wysyłać informacje do usługi sieci Web w języku C# z .NET?
- 21. Generowanie usługi proxy sieci Web z usługi WSDL C#
- 22. Dostęp do usługi WWW z procedury składowanej Oracle
- 23. Udostępnianie magazynu kluczy do klienta usługi WWW
- 24. Grupowanie obiektów niestandardowych w Objective-C
- 25. Rest Web services zwracające 404
- 26. C++ 11 rodzaj obiektów niestandardowych kilkoma właściwościami
- 27. C++ Sortowanie niestandardowych obiektów na liście
- 28. Amazon Web Services phpMyAdmin: Rozszerzenie mbstring brakuje
- 29. URL Rewrite, aby usunąć www i przekierować do https za pomocą web-config (C# .net)
- 30. Przekazywanie atrybutów niestandardowych do składnika Aurelia Komponent
To może być lepiej, jeśli można być specyficzny temat trudności napotykają. Co tak naprawdę próbujesz zrobić? Może pomogą konkretne przykłady. Co masz na myśli przez "przekazanie niestandardowego obiektu"? może to oznaczać wiele rzeczy. Pomogą w tym niektóre informacje. – Cheeso