Pertanyaan Bagaimana cara membuat XmlnsDefinition bekerja pada perakitan lokal?


Saya sudah mulai menggunakan atribut XmlnsDefinition untuk menyatukan beberapa ruang nama CLR ke dalam satu xmlns untuk kenyamanan dalam XAML.

Sayangnya, tampaknya ini hanya berfungsi ketika menggunakan majelis asing. Jika saya memiliki file XAML dalam rakitan yang sama dengan jenis yang ada di namespace yang saya rujuk dari XmlnsDefinition, maka kompilator memberikan kesalahan tentang jenis yang tidak ada di xmlns yang saya definisikan.

Memindahkan jenis ke perakitan asing memperbaiki masalah.

Apakah ada cara untuk menggunakan XmlnsDefinition pada perakitan dan menggunakannya dari dalam rakitan itu melalui XAML?


32
2018-05-03 19:05


asal


Jawaban:


Sayangnya tidak ada. File XAML harus diurai sebelum perakitan dibangun untuk menghasilkan kode yang tersirat oleh XAML untuk dimasukkan dalam perakitan. Kompilator XAML menghasilkan kode di belakang file (file yang diakhiri dengan, misalnya, .g.cs) dan file ini kemudian menjadi bagian dari perakitan file XAML yang dimasukkan. Karena perakitan belum dibangun, kompilator XAML tidak dapat memuatnya untuk menentukan atribut XmlnsDeclaration telah ditentukan.


41
2018-05-06 04:39



Menggunakan clr-namespace sebagai gantinya. Sebagai contoh:

xmlns:controls="clr-namespace:Rhapsody.UI.Main.Controls

1
2018-03-29 20:14