Аргументы компилятора с XAML?

Возможный дубликат:
Условная компиляция XAML

В С# я могу сделать следующее в коде.

#if COMPILING_AS_WINDOWS_PHONE_7
    //some random code
#else
    //some random code
#endif

Это позволяет мне иметь несколько проектов, которые компилируются по-разному, используя аргументы компилятора проектов. Другими словами, мне не нужно каждый раз изобретать велосипед.

Однако как это сделать с помощью XAML? Кажется, я нигде не могу найти ничего об этом в Интернете.


person Mathias Lykkegaard Lorenzen    schedule 17.12.2012    source источник
comment
Я видел эту ссылку. Я не знаю, как ссылка, которую прислал ответчик, поможет мне, и он не очень хорошо это объяснил.   -  person Mathias Lykkegaard Lorenzen    schedule 17.12.2012
comment
Я могу объяснить, что данная идиома условностей XAML лежит в основе частичной компиляции класса, то есть идеи: если во время компиляции вы предоставите больше деталей своего класса, это приведет к более специализированной реализации вашего класса. В любом случае, в XAML вы должны определенно определить ВСЕ возможности использования вашего XAML, чтобы ваш XAML был еще больше, что устраняет идиому определений препроцессора #if #elseif. Вам очень не понравится идея держать всю хрень для widows phone 7 для КАЖДОГО элемента управления в элементах управления XAML Windows 8, например.   -  person Artur Mustafin    schedule 17.12.2012
comment
Мне это нужно только в сценарии.   -  person Mathias Lykkegaard Lorenzen    schedule 18.12.2012


Ответы (1)


Вы не можете управлять XAML, потому что XAML всегда должен иметь автоматически сгенерированный код в .NET, который будет компилироваться автоматически и игнорировать все определения препроцессора.

Вы можете использовать комментарии и делать это вручную с помощью символов комментария ‹!-- --›

Единственное рабочее решение — это полностью преобразовать ваши определения XAML в полностью закодированные классы C#, то есть используя чистые классы C# в библиотеку управления классами. Кроме того, вы можете использовать управляемый C++ для управления композицией.

Единственным недостатком является то, что его будет сложно разрабатывать, поддерживать, читать и изменять вручную. Преимущество заключается в том, что вы можете использовать один из инструментов генерации кода для XAML.

И, наконец, с помощью #if #endif вы можете использовать одну библиотеку кода/исходники кода для разработки для Windows Phone / 8, но, по моему опыта, лучше использовать частичные классы и общую кодовую базу (вы можете добавить файл в качестве ссылки на проект).

person Artur Mustafin    schedule 17.12.2012
comment
Посмотрите на комментарий к моему вопросу. Возможный дубликат. Это кажется многообещающим. Можете ли вы исследовать это и помочь мне понять это? - person Mathias Lykkegaard Lorenzen; 17.12.2012