2009-08-20 5 views
2

私のプロジェクトでは、WPFコントロールのセットを定義するアセンブリがあります。 XAMLコードでアセンブリを明示的に参照せずにそれらを使用できるようにしたい。だから、私はカスタムXmlnsDefinitionを使用しています:ブレンド付きのカスタムXmlnsDefinition

[assembly: XmlnsDefinition(
    "http://schemas.microsoft.com/winfx/2006/xaml/presentation", 
    "MyProject.Common.WpfLibrary.Markup")] 
[assembly: XmlnsDefinition(
    "http://schemas.microsoft.com/winfx/2007/xaml/presentation", 
    "MyProject.Common.WpfLibrary.Markup")] 
[assembly: XmlnsDefinition(
    "http://schemas.microsoft.com/winfx/2008/xaml/presentation", 
    "MyProject.Common.WpfLibrary.Markup")] 

VS2008の魅力のように動作します。私はMarkup名前空間で定義されたコントロールを直接使うことができます。しかし、ブレンドはそれを気に入らないようで、コントロールを使用しようとするとどこでも「無効なXAML」エラーが表示されます。

回避策はありますか?

答えて

1

アセンブリ内の各CLR-Namespaceに対してXmlnsDefinitionAttributeを1回だけ使用する必要があります。 2番目と3番目の割り当てにはXmlnsCompatibleWithAttributeを使用します。

関連する問題