Укажите сборку для пространства имен

Можно ли указать сборку вместе с пространством имен в 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 ../>

Но в коде C# я все равно не могу найти, как создать экземпляр ButtonChromeв PresentationFramework. Аэро.

Следующий код дает мне ошибку 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выбрать, потому что я этого не говорил. Можно как-нибудь это сделать?

10
задан Jens Björnhager 8 June 2012 в 21:38
поделиться