어쨌든 C#의 네임 스페이스와 함께 어셈블리를 지정합니까?네임 스페이스에 어셈블리 지정
예를 들어, 프로젝트에서 PresentationFramework.Aero
과 PresentationFramework.Luna
을 모두 참조하면 둘 다 동일한 네임 스페이스의 동일한 컨트롤을 공유하지만 다른 구현을 사용한다는 것을 알 수 있습니다.
예를 들어 ButtonChrome
을 취하십시오. 두 어셈블리 모두 네임 스페이스 Microsoft.Windows.Themes
아래에 있습니다.
PresentationFramework.Aero
에
ButtonChrome
의 인스턴스를 생성 어쨌든 찾을 수없는 뒤에이 문제를
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# 코드에서 그래서 여기 네임 스페이스와 함께 어셈블리를 포함한다.
using Microsoft.Windows.Themes;
// ...
ButtonChrome buttonChrome = new ButtonChrome();
오류 CS0433를 컴파일 할 때
다음 코드는 나에게 오류 CS0433을 제공합니다 : 'Microsoft.Windows.Themes.ButtonChrome은'모두
매우 이해할 수
'의 C에 존재하는 유형을 : \ 프로그램 파일 (x86) \ 참조 Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ Profile \ Client \ PresentationFramework.Aero.dll '
및
'c : \ Program Files (x86) \ Reference
내가 이야기하지 않았기 때문에 마이크로 소프트 \ Framework.NETFramework \ 4.0의 \ 프로필 \ 클라이언트 \ 어셈블리 \ PresentationFramework.Luna.dll '는, 컴파일러는 선택할 수있는 ButtonChrome
를 알 수있는 방법이 없습니다 그것. 어떻게 든 할 수 있을까요?
감사합니다. 켄트! PresentationFramework.Aero에 대해 별칭을 에어로로 설정하고 Interop 유형을 False로 포함했지만 여전히 오류가 발생합니다. CS0430 : extern 별칭 'aero'가/reference 옵션에 지정되지 않았습니다. ' 내가해야 할 일은 뭐니? –
프로젝트에 ResourceDictionaries가 포함되어 있으면 불행히도 버그가있는 것으로 보입니다. http://connect.microsoft.com/VisualStudio/feedback/details/615953/reference-aliases-are-ignored-on-projects-containing-some-xaml - 파일. 나는 XAML 파일없이 그것을 시도하고 그것은 효과가 있었다. 이 문제는 4.5에서 수정 될 것입니다. 다시 한 번 감사드립니다 –
@Meleak : 흥미 롭습니다 - 나는 그 버그를 알지 못했습니다. 해결 방법을 보았습니까? 그게 당신을위한 선택입니까? –