Silverlightでは、xmlnsを
xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
のように指定するとsdkというXAMLネームスペースから、複数のCLRネームスペースにアクセスできます。
今回は、xmlnsに複数の自前のCLRネームスペースを割り当てる方法を紹介します。
複数CLRネームスペースを持ったプロジェクトを用意
複数のCLRネームスペースを持ったプロジェクトを作成します。とりあえずクラスが定義できればよいので、メンバは定義しません。
namespace SilverlightClassLibrary1.A { public class ClassA { } }
namespace SilverlightClassLibrary1.B { public class ClassB { } }
AssemblyInfoにXmlnsDefinitionAttributeを定義
xmlnsに複数のCLRネームスペースを割り当てるためには、XmlnsDefinitionAttributeを使用します。
SilverlightClassLibrary1のAssemblyInfo.csにXmlnsDefinitionを定義します。xmlNamespaceネームスペースは、一意に決まる文字列ならば何でもかまいません。Silverlightのxmlnsをまねて、WebサイトのURLを使用するのが望ましいでしょう。
//// SilverlightClassLibrary1.AssemblyInfo.cs // 第一引数は、xmlNamespaceのネームスペース // 第二引数は、対応づけるCLRのネームスペース [assembly: XmlnsDefinition("http://schemas.azest.co.jp/xaml", "SilverlightClassLibrary1.A")] [assembly: XmlnsDefinition("http://schemas.azest.co.jp/xaml", "SilverlightClassLibrary1.B")]