C#で名前空間とともにアセンブリを指定する方法はありますか?
たとえば、プロジェクトでPresentationFramework.Aero
との両方を参照するとPresentationFramework.Luna
、両方が同じ名前空間で同じコントロールを共有しているが、実装が異なることに気付くかもしれません。
例を挙げてみましょうButtonChrome
。名前空間の下の両方のアセンブリに存在しますMicrosoft.Windows.Themes
。
XAML では名前空間と共にアセンブリを含めるので、ここでは問題ありません
xmlns:aeroTheme="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"
xmlns:lunaTheme="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Luna"
<aeroTheme:ButtonChrome ../>
<lunaTheme:ButtonChrome ../>
ButtonChrome
しかし、C# コード ビハインドでは、 inのインスタンスを作成する方法がとにかく見つかりませんPresentationFramework.Aero
。
次のコードでは、コンパイル時にエラー CS0433が表示されます
using Microsoft.Windows.Themes;
// ...
ButtonChrome buttonChrome = new ButtonChrome();
エラー CS0433 : タイプ 'Microsoft.Windows.Themes.ButtonChrome' は両方
の 'c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\Profile\Client\PresentationFramework.Aero.dll'に存在します
および
「c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\Profile\Client\PresentationFramework.Luna.dll」
これは非常に理解できます。コンパイラーは、ButtonChrome
私が指示していないため、どちらを選択するかを知る方法がありません。どうにかしてそれを行うことはできますか?