كيفية استخدام. NET XML التسلسل بدون مخطط المضمون
-
06-07-2019 - |
سؤال
والأساس، ولدي بعض أكس أحتاج إلى إلغاء تسلسل. وفي الوقت أنا أكتب رمز بلادي، أنا أعرف بنية XML، ولكن أود أن تكون قادرة على إجراء تغييرات بسيطة لأكس دون الحاجة لتحديث رمز التسلسل.
مثال:
<foo>
<bar/>
</foo>
وأود أن تكون قادرة على إلغاء تسلسل فو، حتى لو كنت إضافة عقدة الإضافية التي لم يتم تعريف في فئة تسلسل attibuted.
<foo>
<bar/>
<extra-tag/>
</foo>
المحلول
إذا فهمت سؤالك بشكل صحيح وهذا ينبغي أن تعمل بشكل جيد.
ونظرا فئة:
[XmlRoot("foo")]
public class Foo
{
[XmlElement("bar")]
public string Bar;
[XmlElement("extra-tag")]
public string ExtraTag;
}
وبعد هذا الرمز يعمل على ما يرام:
string xml =
@"<foo>
<bar>bar</bar>
<extra-tag>extra-tag</extra-tag>
</foo>";
XmlSerializer serializer = new XmlSerializer(typeof(Foo));
Foo afoo = (Foo)serializer.Deserialize(new StringReader(xml));
ولكن إذا صفك يبدو مثل هذا:
[XmlRoot("foo")]
public class Foo
{
[XmlElement("bar")]
public string Bar;
}
ويستمر رمز للعمل
لا تنتمي إلى StackOverflow