Önceden var olan bir nesnede alanları XML'den alanlara eşlemek için Linq kullanabileceğimi biliyorum. .NET Framework'te (veya diğer kitaplıklarda) bu daha az manuel olan herhangi bir işlev var mı.C# - Var olan nesneyi XML ile nemlendirin
Yazıyorum (ve HydrateFromXml AutoMapper yaptığı gibi biraz davranmaya var) istiyorum:
var myObject = new MyObject(/*ctor args*/);
myObject = myObject.HydrateFromXml(string xml);
Düzenleme:
Ben dekoratör desen ya da burada basit bir kapsayıcı nesnesi kullanmak olabilir mi? İhtiyaç duyduğum ince taneli inşaat kontrolüne izin veren bir soyutlama ile sarılmış bir türe direkt olarak deserialize olur mu?
Seri hale getirme öznitelikleriyle ilgili özellikleri biraz benzer bir şekilde yaptım. Ardından, işaretlenmiş özellikleri yansıtan ve bunları ayarlamak için içerik için xml'de dolaşan bir yöntem yazın. Constrcutor args ve Hydration arasında hiçbir geçiş olmadığını varsayarak, onu tersine çevirmekle ilgili olarak söylüyorum. Bir tanesini almak için serileştirme kullanın ve sonra kurucu hakemlerini ayarlayın. –
Bu bağlamda “hidratın” ne anlama geldiğini sorgulayabilir miyim? –
@KennethK. Bence bu sorunun özüdür. MyObject öğesindeki özelliklerin XML'deki karşılık gelen değerlerle başlatılmasını istiyorum, ancak bunu yapmak programın nasıl yapılacağını anlatmak anlamına gelir. Alanların elle eşlenmesini içermeyen bir şey arıyordum, ama bunun mümkün olmadığı anlaşılıyor. – Ben