"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية التحكم في بادئات مساحة الاسم في .NET XML Serialization؟

كيفية التحكم في بادئات مساحة الاسم في .NET XML Serialization؟

نشر في 2025-04-16
تصفح:458

How to Control Namespace Prefixes in .NET XML Serialization?

ومع ذلك ، تتم إدارة بادئات مساحة الاسم التي يتم إنشاؤها افتراضيًا بواسطة الآليات الداخلية ، والتي تحد من الحاجة إلى البادئات المخصصة.

استخدم xmlserializernamespaces إذا كنت بحاجة إلى التحكم في الاسم المستعار لمساحة الاسم ، فإن الطبقة

يسمح بشكل صريح بتحديد الاسم المستعار لمنح اسم محدد في XML المسلسل.

يوضح مثال الكود التالي كيفية التحكم في اسم الاسم المستعار لمساحة الاسم باستخدام xmlSerializerNamesPaces

:

[xmlroot ("node" ، namepace = "http: // flibble")] الطبقة العامة mytype { [xmlelement ("childnode")] قيمة السلسلة العامة {get ؛ تعيين؛ } } برنامج فئة ثابتة { باطل ثابت رئيسي () { xmlSerializerNamespaces ns = new xmlserializernamespaces () ؛ ns.add ("mynamespace" ، "http: // flibble") ؛ XmlSerializer XSer = New XmlSerializer (typeof (myType)) ؛ xser.serialize (console.out ، new mytype () ، ns) ؛ } }

يعين هذا الكود الاسم المستعار "MyNamesPace" إلى " http: // flibble " مساحة الاسم. إخراج XML المسلسل كما يلي:

[XmlRoot("Node", Namespace = "http://flibble")]
public class MyType
{
    [XmlElement("childNode")]
    public string Value { get; set; }
}

static class Program
{
    static void Main()
    {
        XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
        ns.Add("myNamespace", "http://flibble");
        XmlSerializer xser = new XmlSerializer(typeof(MyType));
        xser.Serialize(Console.Out, new MyType(), ns);
    }
}

استخدم xmlattrimeOverRides

يغير وقت التشغيل
something in here
على سبيل المثال ، يوضح الكود التالي كيفية تغيير مساحة الاسم باستخدام

xmlattributeOverRides :

xmlattributeOverRides ovrd = new xmlattributeOverRides () ؛ ovrd.add (typeof (mytype) ، "childnode" ، xmlattributeoverrides () { {typeof (xmlelementattribute) ، xmlelementattribute ("childnode" ، "http: // alwaysenamespace")} }) ؛ XmlSerializer XSer = New XmlSerializer (typeof (myType) ، ovrd) ؛ xser.serialize (console.out ، new mytype ()) ؛

يتجاوز هذا الرمز مساحة الاسم الافتراضية لـ

خاصية childnode ، مما يشير إلى " http: // alwaysenamespace

".
            
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3