¿Hay alguna forma de especificar el ensamblaje junto con el espacio de nombres en C#?Especifique el ensamblaje para el espacio de nombres
Por ejemplo, si hace referencia tanto a PresentationFramework.Aero
como a PresentationFramework.Luna
en un proyecto, es posible que observe que ambos comparten los mismos controles en el mismo espacio de nombres pero con una implementación diferente.
Tome ButtonChrome
por ejemplo. Existe en ambos conjuntos bajo el espacio de nombre Microsoft.Windows.Themes
.
En XAML que incluyen el montaje junto con el espacio de nombres por lo que aquí no hay problema
xmlns:aeroTheme="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"
xmlns:lunaTheme="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Luna"
<aeroTheme:ButtonChrome ../>
<lunaTheme:ButtonChrome ../>
Pero en C# código detrás no puedo encontrar modos para crear una instancia de ButtonChrome
en PresentationFramework.Aero
.
El siguiente código me da CS0433 de error al compilar
using Microsoft.Windows.Themes;
// ...
ButtonChrome buttonChrome = new ButtonChrome();
CS0433 de error: El tipo existe 'Microsoft.Windows.Themes.ButtonChrome' en ambos
'C: \ Program Archivos (x86) \ Conjuntos de referencia \ Microsoft \ Framework.NETFramework \ v4.0 \ Profile \ Client \ PresentationFramework.Aero.dll '
y
' c: \ Archivos de programa (x86) \ Referencia Asambleas \ Microsoft \ Framework.NETFramework \ v4.0 \ Perfil \ Client \ PresentationFramework.Luna.dll'
que es muy comprensible, el compilador no tiene forma de saber qué ButtonChrome
elegir porque no le he dicho eso. ¿Puedo hacer eso de alguna manera?
Gracias Kent! Para PresentationFramework.Aero he establecido Aliases en aero y Incrustar Interop Types en False, pero sigo obteniendo 'error CS0430: El alias externo 'aero' no se ha especificado en una opción/reference'. ¿Algo más que deba hacer? –
Desafortunadamente, parece que hay un error si el proyecto contiene ResourceDictionaries: http://connect.microsoft.com/VisualStudio/feedback/details/615953/reference-aliases-are-ignored-on-projects-containing-some-xaml -archivos. Lo probé sin ningún archivo XAML y funcionó. Este problema se solucionará en 4.5. Gracias de nuevo –
@Meleak: interesante - No estaba al tanto de ese error. ¿Viste la solución? esa es una opción para ti? –