كيفية تسلسل XML إلى جمع عام عندما يتم تحديد مساحة الاسم

StackOverflow https://stackoverflow.com/questions/825423

سؤال

ودعونا نقول لدي ملف XML التالية:

<?xml version="1.0" encoding="utf-8"?>
<Customers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Customer.xsd">
    <Customer>
        <FirstName></FirstName>
        <LastName></LastName>
    </Customer>
    <Customer>
        <FirstName></FirstName>
        <LastName></LastName>
    </Customer>
    <Customer>
        <FirstName></FirstName>
        <LastName></LastName>
    </Customer>
</Customer>

ولقد خلق أيضا كائن العملاء أن يعين الحقول المناسبة.

والآن إذا وأنا أحاول أن تسلسل هذه إلى قائمة عامة على هذا النحو:

XmlSerializer xml = new XmlSerializer(typeof(List<Customer>));

وسأحضر استثناء، لأنه لم يتم تعيين قائمة جهدي لنفس مساحة الاسم كما العملاء في وثيقة XML، وأنا لا يمكن إضافته كسمة لأنني أستخدم قائمة عامة، وليس العرف جمع

وكيف يمكن أن أقول للمسلسل لمتابعة المباراة مساحة الاسم إلى قائمة دون خلق مجموعة مخصصة؟

وتحرير: وأود أن تضع قليلا، باستثناء القيت من قبل مسلسل هو:

ولم يكن متوقعا (العملاء XMLNS = ''>.

والآن لأنني باستخدام قائمة (T)، والعقدة الأصل، كيف يمكنني متابعة المباراة قائمة العامة للمساحة المحددة في وثيقة XML؟

هل كانت مفيدة؟

المحلول

وأعتقد أن الخطأ ليس له اي علاقة مع <عملاء> عقدة لا XMLNS.

وحاول

XmlRootAttribute xr = new XmlRootAttribute("Customers");
XmlSerializer xs = new XmlSerializer(typeof(List<Customer>), xr); 

وافتراضيا فإنه يتوقع عقدة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top