Ostatnio muszę zrobić coś w projekcie, który był pierwszym poważnym, którym się zajmowałem – sprzed kilku lat. No i jak to oczywiście w takim przypadku jest, rzeczy które są tam porobione, to aż głupio patrzeć..Musiałem zserializować i zdeserializować klasę z web serwisu do klasy w projekcie części klienckiej – oczywiście, jakbym teraz coś takiego robił, to skorzystałbym z interfejsów (zawierających tylko deklaracje klas) i współdzielił je między projektem części klienckiej, a części serwera aplikacji – wtedy w ogóle nie natknąłbym się na ten problem, a tak mam bardzo brzydkie rozwiązanie – dwie identyczne klasy (na szczęście nieduże) w części serwerowej i klienckiej, no i muszę je zserializować do pliku, a potem zdeserializować do obiektu. Problemem jest fakt, że są one w różnych namespace’ach (część kliencka nie wie o części serwerowej, a obiekt ten nie jest po prostu zwracany przez którąś z metod), no i mamy problem – standardowe podejście z klasą BinaryFormatter nie dawało rezultatu (klasy DataContractSerializer nie mogłem użyć, bo jest to projekt jeszcze w .NET 2.0 i nie korzysta z dobrodziejstw .NET 4.0, ale myślę, że z tą klasą też miałbym problem). Trochę szperania na forach i znalazłem rozwiązanie – klasa XMLSerializer – jest ona trochę bardziej rozrzutna w pliku wynikowym (większa objętość), ale nie zwraca uwagi na namespace’y i dzięki temu dwie identyczne kopie klas serializują/deserializują się bez problemu