Специфичные для культуры рабочие процессы XAML в Windows Workflow 4.0 - PullRequest
3 голосов
/ 27 июля 2011

Я создал простой рабочий процесс XAML с одним InArgument со значением по умолчанию 1.234.Если затем я переключаю свой компьютер на французский (Франция) в разделе «Язык и региональные стандарты» и пытаюсь загрузить рабочий процесс в представление конструктора VS, я получаю сообщение об ошибке:

«Не удалось создать« InArgument »из текста'1.234'. '

Глядя на XAML, я вижу, что атрибут это: Activity1.arg1 = "1.234", что вызывает проблему.Затем я попытался создать эквивалентный рабочий процесс XAML с нуля, используя VS, хотя он все еще работает с французскими настройками, и полученный XAML отличается - атрибут такой: Activity1.arg1 = "[1.234]".

Это вызываетУ меня две проблемы:

1) Наши конечные пользователи не смогут отправлять файлы XAML другим пользователям, работающим с другими региональными настройками

2) Два файла XAML десериализуются в разные графы объектов - вВ первом случае я получаю литерал, а во втором - VisualBasicValue.Затем мне нужно кодировать различия, когда я программно управляю рабочим процессом.

Есть ли какой-нибудь простой способ избежать этого, гарантируя, что XAML всегда пишется / читается в нейтральной культуре?

1 Ответ

3 голосов
/ 14 сентября 2011

Вы можете программно изменить Thread.CurrentCulture на инвариантную культуру.Это можно сделать временно, пока загружается рабочий процесс.

...