Как реализовать проверки времени разработки для XAML, которые приводят к ошибкам компиляции?

StackOverflow https://stackoverflow.com/questions/335645

Вопрос

Как добиться того, чтобы разработчики, пишущие XAML в Visual Studio, следовали определенным стандартам, и необходимо выполнить проверки, а также при возникновении недопустимых ошибок времени компиляции.

Например, убедившись, что все выражения привязки данных (некоторые очень длинные) написаны правильно, согласно «пользовательской проверке», которую я хотел бы реализовать во время разработки. Как,

<TextBox Text="{Binding Source={StaticResource CALCULATED}, Converter={StaticResource XPathConverter}, ConverterParameter=@FIRSTNAME_STRING, XPath=@FIRSTNAME}"/>

В приведенном выше примере, если выражение привязки в свойстве Text не в этом формате , должна быть ошибка компиляции .

Есть ли способ сделать это?

Это было полезно?

Решение

К сожалению, языковая служба XAML также не может быть расширена. Лучший способ сделать это сегодня - это создать задачу сборки. Я думаю, что вы можете подключить его к цели MarkupCompilePass1DependsOn, и он будет вызываться автоматически, когда пользователь сохраняет или изменяет файл XAML. Вам все еще нужно отсканировать файл от нас, но вам не нужно ждать фактической сборки, чтобы это сработало. Это прямая цитата одного из архитекторов Microsoft, который в настоящее время работает над дизайнерами WPF.

Другие советы

Нет встроенного способа сделать это. Лучший способ получить этот результат - запустить пользовательский инструмент для ввода. Это потребует много усилий с вашей стороны, потому что это потребует синтаксического анализа файла самостоятельно, но вы должны быть в состоянии заставить этот сценарий работать.

Пример сайта для создания собственного генератора

http://www.drewnoakes.com/snippets/WritingACustomCodeGeneratorToolua/a/a р>

scroll top