Błąd przy serializacji

Błąd przy serializacji
AL
  • Rejestracja: dni
  • Ostatnio: dni
  • 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: dni
  • Ostatnio: dni
  • Postów: 21
0

Pokaż co masz w InnerException

AL
  • Rejestracja: dni
  • Ostatnio: dni
  • 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: dni
  • Ostatnio: dni
  • 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 {..}
 }
AL
  • Rejestracja: dni
  • Ostatnio: dni
  • 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..

T2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 194
0

jakiej wersji .NET używasz w aplikacji?

  • Rejestracja: dni
  • Ostatnio: dni
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.