Có cách nào để chỉ định lắp ráp cùng với không gian tên trong C#? Ví dụ: nếu bạn tham chiếu cả hai PresentationFramework.Aero
và PresentationFramework.Luna
trong một dự án, bạn có thể nhận thấy rằng cả hai đều chia sẻ cùng một điều khiển trong cùng một không gian tên nhưng với triển khai khác nhau.Chỉ định lắp ráp cho không gian tên
Lấy ví dụ ButtonChrome
. Nó tồn tại trong cả hai hội đồng dưới không gian tên Microsoft.Windows.Themes
.
Trong XAML bạn bao gồm lắp ráp cùng với không gian tên như vậy ở đây nó không có vấn đề
xmlns:aeroTheme="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"
xmlns:lunaTheme="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Luna"
<aeroTheme:ButtonChrome ../>
<lunaTheme:ButtonChrome ../>
Nhưng trong C# mã đằng sau tôi không thể tìm thấy anyway để tạo một thể hiện của ButtonChrome
trong PresentationFramework.Aero
.
Các mã sau đây mang lại cho tôi lỗi CS0433 khi biên dịch
using Microsoft.Windows.Themes;
// ...
ButtonChrome buttonChrome = new ButtonChrome();
lỗi CS0433: Loại 'Microsoft.Windows.Themes.ButtonChrome' tồn tại trong cả
'c: \ Program Files (x86) \ Tham chiếu Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ Hồ sơ \ Client \ PresentationFramework.Aero.dll '
và
' c: \ Program Files (x86) \ Tham khảo Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ Hồ sơ \ Khách hàng \ PresentationFramework.Luna.dll'
Đó là rất dễ hiểu, trình biên dịch không có cách nào để biết mà ButtonChrome
để lựa chọn bởi vì tôi đã không nói nó. Tôi có thể làm điều đó bằng cách nào đó không?
Cảm ơn Kent! Đối với PresentationFramework.Aero tôi đã đặt bí danh để aero và nhúng Interop loại sai nhưng tôi vẫn nhận được 'lỗi CS0430: bí danh extern 'aero' đã không được chỉ định trong một/tham khảo tùy chọn'. Tôi cần làm gì nữa? –
Thật không may, có vẻ như là một lỗi nếu dự án chứa ResourceDictionaries: http://connect.microsoft.com/VisualStudio/feedback/details/615953/reference-aliases-are-ignored-on-projects-containing-some-xaml -các tập tin. Tôi đã thử nó mà không có bất kỳ tập tin XAML và nó làm việc. Vấn đề này sẽ được sửa trong 4.5. Cảm ơn một lần nữa –
@Meleak: thú vị - Tôi đã không nhận thức được lỗi đó. Bạn có thấy cách giải quyết không? Đó có phải là một lựa chọn cho bạn? –