反序列化XmlAttribute

时间:2016-05-04 08:27:52

标签: c# deserialization

我想反序列化xsi:nil="true"

我在我的XML中有这个我要反序列化

<Sekretessmarkering xsi:nil="true" />

我猜它是布尔值(真或假)。

我知道如何在XML上反序列化正常的字符串值。我有这个有效:

我的反序列化课程:

[XmlRoot(ElementName = "Sekretessmarkering")]
public class Sekretessmarkering
{
    [XmlAttribute(AttributeName = "nil", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
    public bool Nil { get; set; }
}

[XmlRoot(ElementName = "PersonId")]
public class PersonId
{
    [XmlElement(ElementName = "PersonNr")]
    public string PersonNr { get; set; }

    [XmlElement(ElementName = "TilldelatPersonNrSamordningsNr")]
    public string Tilltalsnamnsmarkering { get; set; }
}


[XmlRoot(ElementName = "Avregistrering")]
public class Avregistrering
{
    [XmlElement(ElementName = "AvregistreringsorsakKod")]
    public string AvregistreringsorsakKod { get; set; }

    [XmlElement(ElementName = "Avregistreringsdatum")]
    public string Avregistreringsdatum { get; set; }
}

[XmlRoot(ElementName = "HanvisningsPersonNr")]
public class HanvisningsPersonNr
{
    [XmlAttribute(AttributeName = "nil", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
    public string Nil { get; set; }
}

[XmlRoot(ElementName = "Mellannamn")]
public class Mellannamn
{
    [XmlAttribute(AttributeName = "nil", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
    public string Nil { get; set; }
}

[XmlRoot(ElementName = "Aviseringsnamn")]
public class Aviseringsnamn
{
    [XmlAttribute(AttributeName = "nil", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
    public string Nil { get; set; }
}

[XmlRoot(ElementName = "Namn")]
public class Namn
{
    [XmlElement(ElementName = "Tilltalsnamnsmarkering")]
    public string Tilltalsnamnsmarkering { get; set; }
    [XmlElement(ElementName = "Fornamn")]
    public string Fornamn { get; set; }
    [XmlElement(ElementName = "Mellannamn")]
    public Mellannamn Mellannamn { get; set; }
    [XmlElement(ElementName = "Efternamn")]
    public string Efternamn { get; set; }
    [XmlElement(ElementName = "Aviseringsnamn")]
    public Aviseringsnamn Aviseringsnamn { get; set; }
}

[XmlRoot(ElementName = "ForsamlingKod")]
public class ForsamlingKod
{
    [XmlAttribute(AttributeName = "nil", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
    public string Nil { get; set; }
}

[XmlRoot(ElementName = "Folkbokforing")]
public class Folkbokforing
{
    [XmlElement(ElementName = "Folkbokforingsdatum")]
    public string Folkbokforingsdatum { get; set; }
    [XmlElement(ElementName = "LanKod")]
    public string LanKod { get; set; }
    [XmlElement(ElementName = "KommunKod")]
    public string KommunKod { get; set; }
    [XmlElement(ElementName = "ForsamlingKod")]
    public ForsamlingKod ForsamlingKod { get; set; }
    [XmlElement(ElementName = "Fastighetsbeteckning")]
    public string Fastighetsbeteckning { get; set; }
    [XmlElement(ElementName = "FiktivtNr")]
    public string FiktivtNr { get; set; }
}

[XmlRoot(ElementName = "CareOf")]
public class CareOf
{
    [XmlAttribute(AttributeName = "nil", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
    public string Nil { get; set; }
}

[XmlRoot(ElementName = "Utdelningsadress1")]
public class Utdelningsadress1
{
    [XmlAttribute(AttributeName = "nil", Namespace = "http://www.w3.org/2001/XMLSchema-instance")]
    public string Nil { get; set; }
}

[XmlRoot(ElementName = "Folkbokforingsadress")]
public class Folkbokforingsadress
{
    [XmlElement(ElementName = "CareOf")]
    public CareOf CareOf { get; set; }
    [XmlElement(ElementName = "Utdelningsadress1")]
    public string Utdelningsadress1 { get; set; }
    [XmlElement(ElementName = "Utdelningsadress2")]
    public string Utdelningsadress2 { get; set; }
    [XmlElement(ElementName = "PostNr")]
    public string PostNr { get; set; }
    [XmlElement(ElementName = "Postort")]
    public string Postort { get; set; }
}


[XmlRoot(ElementName = "Utlandsadress")]
public class Utlandsadress
{
    [XmlElement(ElementName = "Utdelningsadress1")]
    public string Utdelningsadress1 { get; set; }
    [XmlElement(ElementName = "Utdelningsadress2")]
    public string Utdelningsadress2 { get; set; }
    [XmlElement(ElementName = "Utdelningsadress3")]
    public string Utdelningsadress3 { get; set; }

}


[XmlRoot(ElementName = "Riksnycklar")]
public class Riksnycklar
{
    [XmlElement(ElementName = "FastighetsId")]
    public string FastighetsId { get; set; }
    [XmlElement(ElementName = "AdressplatsId")]
    public string AdressplatsId { get; set; }
    [XmlElement(ElementName = "LagenhetsId")]
    public string LagenhetsId { get; set; }
}

[XmlRoot(ElementName = "Adresser")]
public class Adresser
{
    [XmlElement(ElementName = "Utlandsadress")]
    public Utlandsadress Utlandsadress { get; set; }
    [XmlElement(ElementName = "Folkbokforingsadress")]
    public Folkbokforingsadress Folkbokforingsadress { get; set; }
    [XmlElement(ElementName = "Riksnycklar")]
    public Riksnycklar Riksnycklar { get; set; }
}

[XmlRoot(ElementName = "HemortSverige")]
public class HemortSverige
{
    [XmlElement(ElementName = "FodelselanKod")]
    public string FodelselanKod { get; set; }
    [XmlElement(ElementName = "Fodelseforsamling")]
    public string Fodelseforsamling { get; set; }
}



[XmlRoot(ElementName = "OrtUtlandet")]
public class OrtUtlandet
{
    [XmlElement(ElementName = "FodelseortUtland")]
    public string FodelseortUtland { get; set; }
}




[XmlRoot(ElementName = "Fodelse")]
public class Fodelse
{
    [XmlElement(ElementName = "HemortSverige")]
    public HemortSverige HemortSverige { get; set; }

    [XmlElement(ElementName = "OrtUtlandet")]
    public OrtUtlandet OrtUtlandet { get; set; }
}

[XmlRoot(ElementName = "Medborgarskap")]
public class Medborgarskap
{
    [XmlElement(ElementName = "MedborgarskapslandKod")]
    public string MedborgarskapslandKod { get; set; }
    [XmlElement(ElementName = "Medborgarskapsdatum")]
    public string Medborgarskapsdatum { get; set; }
}

[XmlRoot(ElementName = "Personpost")]
public class Personpost
{
    [XmlElement(ElementName = "PersonId")]
    public PersonId PersonId { get; set; }
    [XmlElement(ElementName = "Avregistrering")]
    public Avregistrering Avregistrering { get; set; }
    [XmlElement(ElementName = "HanvisningsPersonNr")]
    public HanvisningsPersonNr HanvisningsPersonNr { get; set; }
    [XmlElement(ElementName = "Namn")]
    public Namn Namn { get; set; }
    [XmlElement(ElementName = "Folkbokforing")]
    public Folkbokforing Folkbokforing { get; set; }
    [XmlElement(ElementName = "Adresser")]
    public Adresser Adresser { get; set; }
    [XmlElement(ElementName = "Fodelse")]
    public Fodelse Fodelse { get; set; }
    [XmlElement(ElementName = "Medborgarskap")]
    public Medborgarskap Medborgarskap { get; set; }
}

[XmlRoot(ElementName = "FolkbokforingspostTYPE")]
public class FolkbokforingspostTYPE
{
    [XmlElement(ElementName = "Sekretessmarkering")]
    public string Sekretessmarkering { get; set; }
    [XmlElement(ElementName = "Personpost")]
    public Personpost Personpost { get; set; }
}
}



List<FolkbokforingspostTYPE> deserializedList = new List<FolkbokforingspostTYPE>();
            deserializedList = Deserialize<List<FolkbokforingspostTYPE>>();


            var myPersons = Deserialize<List<FolkbokforingspostTYPE>>()
                .Select(x => new Person
                {
                    PersonalIdentityNumber = x.Personpost.PersonId.PersonNr,
                    SpecialIdentityNumber = x.Personpost.PersonId.Tilltalsnamnsmarkering != null ? x.Personpost.PersonId.Tilltalsnamnsmarkering : null, 
                    LastName = x.Personpost.Namn.Efternamn,
                    FirstName = x.Personpost.Namn.Fornamn,
                    NationalRegistrationCountyCode = x.Personpost.Folkbokforing.LanKod,
                    NationalRegistrationMunicipalityCode = x.Personpost.Folkbokforing.KommunKod,
                    ForeignDistrubtionAddress1 = x.Personpost.Adresser.Utlandsadress != null ? x.Personpost.Adresser.Utlandsadress.Utdelningsadress1 : null,
});

如何以同样的方式反序列化<Sekretessmarkering xsi:nil="true" />

0 个答案:

没有答案