Saya memiliki file XML yang mewakili berbagai produsen mobil yang akan tersedia di game saya. File terlihat seperti ini:
<?xml version="1.0" encoding="utf-8" ?>
<XnaContent>
<Asset Type="List[string]">
<car>Audi</car>
<car>BMW</car>
<car>Nissan</car>
<car>Volvo</car>
</Asset>
</XnaContent>
Saat menambahkannya ke folder konten saya, kompiler mengembalikan kesalahan ini:
There was an error while deserializing intermediate XML. Cannot find type "List`1"
Bagaimana saya bisa membuat daftar string, memasukkannya ke XML dan membacanya dari XNA?
XmlImporter
, bagian dari Pipeline Konten XNA. Pipeline deserializes XML untuk mengkonversikannya ke file XNB (yang kemudian akan dimuat padaContentManager
saat runtime).Jawaban:
Saya belum mencoba mencari tahu apa yang salah dengan XML Anda - mungkin kekurangan namespace. Tapi ini XML yang benar:
Di bawah tenda itu
XmlImporter
menggunakanIntermediateSerializer
kelas. Jadi program kecil seperti berikut ini dapat digunakan untuk menentukan apa XML Anda harus terlihat seperti:(Anda bahkan dapat mengonversi output menjadi aliran, meneruskannya ke
Deserialize
metode, dan merekonstruksi objek - hanya untuk menjadi dua kali lipat - yakin itu berfungsi. Juga mungkin perlu menempatkan pengkodean yang tepat di header - misalnya:StringBuilder
adalah utf-16 .)Untuk beberapa informasi mendalam tentang
IntermediateSerializer
, lihat blog Shawn Hargreaves, dimulai dengan posting ini dan berlanjut melalui arsip sampai Agustus 2008.sumber
Jika Anda ingin melihat bagaimana melakukannya dengan contoh kode, berikut adalah contoh yang menggunakan xml seperti Anda ingin http://create.msdn.com/en-US/education/catalog/sample/collision
Jika Anda ingin membaca artikel yang menjelaskan apa yang sedang terjadi dan mendapatkan wawasan tentang cara bekerja dengan xml & pemroses konten, buka tautan ini, gulir ke bawah ke bagian serializer menengah dan baca 8 atau 9 artikel di sana. http://www.talula.demon.co.uk/blogindex.html
sumber