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