Avatar
Petr Nymsa
Redaktor
Avatar
Petr Nymsa:

Ahoj, potřeboval bych serializovat přes XmlSerializer nebo něco podobného třídy do XML. Pro ignorování lze použít

[XmlIgnoreAttribute]
Lze nějak u private položky ? Našel jsem DataContractSerializer ale ten nelze použít ve WinForm (nebo nechce se mi přidat potřebné namespace)
Odpovědět 21.11.2013 13:44
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
coells
Redaktor
Avatar
Odpovídá na Petr Nymsa
coells:

XmlSerializer podporuje pouze serializaci public fields a public properties (musí mít public getter i setter).

Private members nejsou implicitně podporovány, ale můžeš implementovat interface IXmlSerializable, kde ručně čteš a zapisuješ XML - http://msdn.microsoft.com/…lizable.aspx

DataContractSe­rializer je v System.Runtime­.Serialization­.dll, kterou musíš nejdřív přidat do projektových referencí. V tom případě se také vyžaduje minimálně .NET framework 3.0.

DataContractSe­rializer je novější a umí o trochu méně, než XmlSerializer, ale pokud nemusíš vytvářet XML podle cizího XML Schema, tak je to lepší varianta.

Třídu označ atributem [DataContract] a serializované membery [DataMember].

 
Nahoru Odpovědět 21.11.2013 15:13
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.