Błąd przy serializacji

Błąd przy serializacji
AL
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 2 miesiące
  • Postów:308
0
Kopiuj
There was an error reflecting type 'System.Collections.Generic.List

Przykładowy wygląd klas: Serializuje obiekt List<AA>

Kopiuj
    [Serializable]
    [XmlRoot("")]
    public class AA
    {
        public AA()
        {
        }

        [XmlAttribute("Name")]
        public string Name { get; set; }

        [XmlArray("arr")]
        [XmlArrayItem("arritem", typeof(xx))]
        public List<xx> xxlist = new List<xx>();
    }

    [Serializable]
    [XmlRoot("xx")]
    public class xx
    {
        public xx()
        {
        }

        [XmlElement("myenum")]
        public MyEnum enum= MyEnum.None;

        [XmlElement("1")]
        public long 1{ get; set; }

        [XmlElement("2")]
        public DateTime 2= DateTime.Now;

I teraz najciekawsze. Na większości komputerów wszystko działa, błąd mam na mojej wirtualnej maszynie z XP i jednym komputerze w7. Kombinowałem, żeby np zamiast get; set; przypisać już jakieś wartości (jak w kodzie wyżej) ale nic to nie dało. Serializuje tą samą metodą też inne klasy, które są podobnie zbudowane i tam wszystko działa na wszystkich komputerach. Co może być przyczyną, jakiś bug w Framoworku?

gr0m
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 9 lat
  • Postów:21
0

Pokaż co masz w InnerException

AL
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 2 miesiące
  • Postów:308
0
Kopiuj
There was an error reflecting type 'AA' //z pierwszego posta

at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(TypeModel model, String ns, ImportContext context, String dataType, XmlAttributes a, Boolean repeats, Boolean openModel, RecursionLimiter limiter)
at System.Xml.Serialization.XmlReflectionImporter.ImportElement(TypeModel model, XmlRootAttribute root, String defaultNamespace, RecursionLimiter limiter)
at System.Xml.Serialization.XmlReflectionImporter.ImportTypeMapping(Type type, XmlRootAttribute root, String defaultNamespace)
at System.Xml.Serialization.XmlSerializer..ctor(Type type, String defaultNamespace)
[..]
T2
  • Rejestracja:prawie 11 lat
  • Ostatnio:9 miesięcy
  • Postów:194
0

Dlaczego [XmlRoot("")] dla AA jest pusty ?
jeżeli serializujesz pojedyńczo XX wszystko jest ok ?

public List<xx> xxlist = new List<xx>();

zamień to na property

Kopiuj
 
  private  List<xx>_xxlist = new List<xx>();
  public List<xx> xxlist 
 {
 get {..}
 set {..}
 }
edytowany 4x, ostatnio: teo215
AL
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 2 miesiące
  • Postów:308
0

tu z palca pisałem, jako przykład, nie będę wklejał kodu programu..

Problem jest taki, że wszystko działa tak jak ma działać, a wywala się tylko jednej osobie. (I mi na wirtualnej maszynie- XP)
na tym XP nie mam visuala, nie mam jak debugować. Nie mam jak wywołać tego błędu u siebie na systemie z visualem.

Mam też drugą inną podobną klasę- podobnie zbudowana i tam działa u wszystkich.

Nie wiem czy to jakiś błąd w .NET ale już nie wiem co nie tak..

AL
Już sobie rozwiązałem problem
T2
  • Rejestracja:prawie 11 lat
  • Ostatnio:9 miesięcy
  • Postów:194
0

jakiej wersji .NET używasz w aplikacji?

Zobacz pozostały 1 komentarz
T2
http://stackoverflow.com/questions/4204194/is-net-4-0-compatible-with-windows-xp-sp2-or-below jaka wersja windowsa XP ? Dla precyzji wywala się tylko na tych dwóch XP czy na wszystkich XP ?
AL
XP SP3 net od 2.0 do 4.0, drugi system to w7. Ja też mam w7 i wszystko działa. Wywala się tylko jednej osobie na 7 i mi na wirtualnym XP. Sprawdzę na starym PC- mam tam XP jeszcze.
AL
też nie działa na tym PC z XP..
T2
Czyli można przyjąć że wszędzie się wywala tylko nie u Ciebie ?:p Chyba bez pokazania kodu się nie obejdzie :D
AL
Można przyjąć, że wszędzie na XP, i na prawdopodobnie nieaktualizowanym 7 (jeden przypadek). Czyli będę kombinował dalej.. ewentualnie zamiast serializacji wczytam to inaczej..
0
.Al napisał(a):

tu z palca pisałem, jako przykład, nie będę wklejał kodu programu..

Problem jest taki, że wszystko działa tak jak ma działać, a wywala się tylko jednej osobie. (I mi na wirtualnej maszynie- XP)
na tym XP nie mam visuala, nie mam jak debugować. Nie mam jak wywołać tego błędu u siebie na systemie z visualem.

Mam też drugą inną podobną klasę- podobnie zbudowana i tam działa u wszystkich.

Nie wiem czy to jakiś błąd w .NET ale już nie wiem co nie tak..

jak sobie rozwiązałeś problem to napisz co było nie tak..

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.