Jesteś na końcu usługi i nie znasz swoich klientów.Czy WCF DataContracts powinny być wartością lub typem odniesienia?
Dlaczego wybrałbyś jeden nad drugim?
Jesteś na końcu usługi i nie znasz swoich klientów.Czy WCF DataContracts powinny być wartością lub typem odniesienia?
Dlaczego wybrałbyś jeden nad drugim?
Jako ogólna zasada; przy projektowaniu samego typu powinna być klasą, chyba że typ reprezentuje pojedynczą wartość, w którym to przypadku powinna to być struktura.
Fredrik ma poprawną odpowiedź. Dodam tylko, że powinieneś pamiętać, że klient nigdy nie zobaczy Twojej Umowy Danych. Zostanie ono przetłumaczone na schemat XML i zostanie dołączone do WSDL. Po stronie klienta może to być perlowy, a nawet klasyczny klient ASP - coś, co nie ma koncepcji wartości względem semantyki odniesienia.
Wartość a odniesienie to coś, co ma znaczenie tylko dla usługi - nie dla klientów.
W rzeczywistości, John Saunders nie jest całkowicie poprawny. WSDL generowany przez WCF ma wartość infact, określającą, czy obiekty są wartościami, czy też typami referencyjnymi. Kiedy masz WCF po stronie klienta, możesz skorzystać z tego. Ponadto wartość vs odniesienie ma wpływ na atrybut isNullable różnych części WSDL, który może zmienić semantykę.
Oczywiście musisz się upewnić, że nie malujesz się w kącie niezgodności - wartość zerowa nie musi być tym samym, co typ odniesienia (lub nawet możliwy) w niektórych środowiskach klienta.
Edytowany q. Dokładnie to próbuję tutaj omówić;) – user134706