2012-07-19 13 views
6

Uruchamiam sgen przeciwko mojemu zespołowi za pomocą ton metrycznych typów. Chcę wykluczyć 2 typy z serializacji. Wydaje mi się, że nie jestem w stanie znaleźć sposobu, aby to zrobić.Jak wykluczyć określone typy z serializacji?

Widzę, że sgen ma przełącznik /type, aby określić konkretny typ, ale nic, co wyklucza określony typ.

Czy istnieje sposób na wykluczenie określonych typów z serializacji?

+0

Może nie zrozumiałem twojego pytania, ale 'sgen' generuje tylko zestaw do serializacji. Jaki jest problem z posiadaniem kolejnych dwóch klas? –

Odpowiedz

-3

Nie jesteś pewien, czy tego szukasz, ale możesz wykluczyć własne klasy z serializacji, wymieniając [NonSerialized] przed definicją klasy. Więc jeśli chcesz wykluczyć określony typ trzeba będzie dziedziczyć po nim i stworzyć własną klasę

[NonSerialized] 
public class Point 
{ 
    public int x, y; 
} 
+2

Ten kod nie powinien się kompilować, ponieważ obiektami docelowymi atrybutu 'NonSerialized' są tylko pola. – tm1

+1

Błąd Atrybut "Niesserwerowany" jest nieprawidłowy dla tego typu zgłoszenia. Obowiązuje tylko w deklaracjach "terenowych". –

1

oprócz umieszczenia typy, które chcesz wykluczyć w innym zespole, nie można wykluczyć typy z serializatora generacja.

0

Możesz spróbować zmienić dostęp klas, które chcesz wykluczyć z serializacji Xml, zaznaczając klasę jako internal, a następnie sgen.exe powinno pominąć tę klasę.

internal class NotToBeSerialized 
{ 
    ... 
} 
Powiązane problemy