Я создал простой рабочий процесс XAML с одним InArgument со значением по умолчанию 1,234. Если я затем переключу свой компьютер на французский (Франция) в региональных и языковых параметрах и попытаюсь загрузить рабочий процесс в представление дизайна VS, я получаю сообщение об ошибке:
«Не удалось создать «InArgument» из текста «1.234».
Глядя на XAML, я вижу, что атрибут this:Activity1.arg1="1.234" вызывает проблему. Затем я попытался создать эквивалентный рабочий процесс XAML с нуля, используя VS, все еще работая с французскими настройками, и полученный XAML отличается - атрибут таков: Activity1.arg1="[1.234]".
Это вызывает у меня две проблемы:
1) Наши конечные пользователи не смогут отправлять файлы XAML другим пользователям, работающим с другими региональными настройками.
2) Два файла XAML десериализуются в разные графы объектов - в первом случае я получаю литерал, а во втором случае я получаю VisualBasicValue. Затем мне нужно кодировать различия, когда я управляю рабочим процессом программно.
Есть ли простой способ избежать этого, гарантируя, что XAML всегда записывается/читается в нейтральной культуре?