为什么XmlnsDefinition不映射我的命名空间?

简单地说,它不起作用。

我知道你不能在他们定义的同一个程序集中使用它们,但幸运的是我一直在我的WPF项目中使用另一个程序集,它作为各种WPF资源库。

所以在第二个项目的Assembly.cs中,我添加了(使用Orchestra和MahApps shell):

[assembly: XmlnsPrefix("MySchemas.Orchestra.Mahapps", "o")] [assembly: XmlnsDefinition("MySchemas.Orchestra.Mahapps", "Catel.MVVM", AssemblyName="Catel.MVVM")] [assembly: XmlnsDefinition("MySchemas.Orchestra.Mahapps", "Catel.Windows", AssemblyName = "Catel.Core")] [assembly: XmlnsDefinition("MySchemas.Orchestra.Mahapps", "Catel.Windows.Controls", AssemblyName = "Catel.Extensions.Controls")] [assembly: XmlnsDefinition("MySchemas.Orchestra.Mahapps", "Catel.Windows.Data.Converters", AssemblyName = "Catel.Core")] [assembly: XmlnsDefinition("MySchemas.Orchestra.Mahapps", "Catel.Windows.Interactivity", AssemblyName = "Catel.Core")] [assembly: XmlnsDefinition("MySchemas.Orchestra.Mahapps", "MahApps.Metro.Behaviours", AssemblyName = "MahApps.Metro")] [assembly: XmlnsDefinition("MySchemas.Orchestra.Mahapps", "MahApps.Metro.Converters", AssemblyName = "MahApps.Metro")] [assembly: XmlnsDefinition("MySchemas.Orchestra.Mahapps", "MahApps.Metro.Controls", AssemblyName = "MahApps.Metro")] [assembly: XmlnsDefinition("MySchemas.Orchestra.Mahapps", "Orchestra.Behaviors", AssemblyName = "Orchestra.Core")] [assembly: XmlnsDefinition("MySchemas.Orchestra.Mahapps", "Orchestra.Converters", AssemblyName = "Orchestra.Core")] [assembly: XmlnsDefinition("MySchemas.Orchestra.Mahapps", "Orchestra.Controls", AssemblyName = "Orchestra.Core")] [assembly: XmlnsDefinition("MySchemas.Orchestra.Mahapps", "Orchestra.Markup", AssemblyName = "Orchestra.Core")] [assembly: XmlnsDefinition("MySchemas.Orchestra.Mahapps", "Orchestra.Views", AssemblyName = "Orchestra.Core")] [assembly: XmlnsDefinition("MySchemas.Orchestra.Mahapps", "Orchestra.Windows", AssemblyName = "Orchestra.Core")] [assembly: XmlnsDefinition("MySchemas.Orchestra.Mahapps", "Orc.Controls", AssemblyName = "Orc.Controls")] 

这是为了避免必须定义3个或4个不同的命名空间。

但是在我当前的WPF项目(引用第二个)中,当我尝试使用o命名空间时,没有任何结果:

 xmlns:o="MySchemas.Orchestra.Mahapps" 

Intellisense绝对没有带来o: doesn't exist in MySchemas.Orchestra.MahApps namespace我手动放置的任何东西doesn't exist in MySchemas.Orchestra.MahApps namespace