Tôi đang viết mã được sử dụng trong cả WPF và Silverlight. Trong C# tôi có thể sử dụng "#if SILVERLIGHT"
để biên dịch có điều kiện và nó hoạt động.XAML hợp nhất cho WPF và Silverlight sử dụng T4?
Trong XAML, tuy nhiên, tôi phải sử dụng các tệp XAML hoàn toàn khác nhau vì một số thuộc tính đơn giản là không tương thích. Các tệp XAML là 99%, và việc giữ chúng đồng bộ là một rắc rối.
Tôi muốn chuyển đổi chúng thành một mẫu T4, vì vậy tôi có thể làm những việc như:
<SomeControl <#=ClipsToBounds()#> />
đâu ClipsToBounds()
sản xuất văn bản khác cho WPF và Silverlight. Các yêu cầu là:
- Intellisense trong khi làm việc trên các vecto XAML
- tạo ra tại thời gian xây dựng
- Dự án phải được khép kín và làm việc trên phiên bản cổ của Visual Studio: cài đặt SDK khác nhau và các biên tập viên bên thứ 3 không phải là chấp nhận được
- Kết quả chạy mẫu không được trong điều khiển nguồn. -
Tôi thấy rằng tôi có thể thay đổi custom tool
trên tệp XAML từ MSBuild:Compile to TextTemplatingFileGenerator
và tôi không mất Intellisense. Tuy nhiên, các mẫu kết quả được tạo ra vào lúc thiết kế. Để có được sau đó tạo ra tại thời gian xây dựng có vẻ như một nỗi đau lớn.
Có ai có kinh nghiệm thành công với loại thiết lập này không?
Bạn không sử dụng thư viện lớp di động? –
Các thư viện lớp di động giải quyết được vấn đề về mã không phải UI được chia sẻ, chúng phải phù hợp với lớp ViewModel nếu sử dụng MVVM chứ không phải dạng xem. –