I know I can use Linq to map fields from XML to fields in a pre-existing object. Are there any functions in the .NET Framework (or other libraries) that make this less manual.
I would like to write (and have the HydrateFromXml behave a little like AutoMapper does):
var myObject = new MyObject(/*ctor args*/);
myObject = myObject.HydrateFromXml(string xml);
Edit:
Could I use the decorator pattern or a simple wrapper object here? Deserialize directly into a type that is wrapped by an abstraction that permits the fine-grained construction control I need?
Logo C merupakan sebuah lambang yang merujuk pada Copyright, yang berarti hak cipta.
C adalah huruf ketiga dalam alfabet Latin. Dalam bahasa Indonesia, huruf ini disebut ce (dibaca [tʃe]).
Meskipun C dibuat untuk memprogram sistem dan jaringan komputer namun bahasa ini juga sering digunakan dalam mengembangkan software aplikasi. C juga banyak dipakai oleh berbagai jenis platform sistem operasi dan arsitektur komputer, bahkan terdapat beberepa compiler yang sangat populer telah tersedia.
Bahasa pemrograman C ini dikembangkan antara tahun 1969 – 1972 oleh Dennis Ritchie. Yang kemudian dipakai untuk menulis ulang sistem operasi UNIX. Selain untuk mengembangkan UNIX, bahasa C juga dirilis sebagai bahasa pemrograman umum.
You can use XmlSerializer
to do that:
var serializer = new XmlSerializer(typeof(MyObject));
object result;
using (TextReader reader = new StringReader(xml))
{
result= serializer.Deserialize(reader);
}
var myObject = result as MyObject;
For a situation when you're object instance already exists check this question: Deserializing properties into a pre-existing object
As a quick option, you could use AutoMapper. Use the XmlSerializer to deserialize to a new instance and then use AutoMapper to map from the newly created instance to your required instance.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With