无论如何在 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
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
选择哪个,因为我没有告诉它。我能以某种方式做到这一点吗?