Конфликт привязки данных обфускации Xamarin С# xaml

Я разрабатываю приложение xamarin с использованием форм xamarin.
У меня есть кнопка в файле xaml и функция onclick в С#.

XAML

<Button Content="Button!" Click="OnButtonClick"  />

Код позади

void OnButtonClick(object sender, EventArgs e)
{
   //some logic.
}

До запутывания приложение работает нормально.
но после запутывания
В C# имя функции (OnButtonClick) запутано
В xaml имя (OnButtonClick) остается прежним.

из-за этих конфликтов приложение выдает ошибку.
Средства разработки Visual Studio 2015
Dotfuscator Community Edition
xamarin 4.0.4.4


person ravindar    schedule 25.08.2016    source источник


Ответы (2)


В большинстве случаев XAML будет переименован правильно. Однако недавно нам стало известно об ошибке, из-за которой Xamarin генерирует XAML/XML с необычной строкой версии, а Dotfuscator не обрабатывает ее. Мы планируем исправление, но оно не будет доступно до тех пор, пока не будет выпущена новая версия Visual Studio с исправлением для Dotfuscator CE. (Наш следующий выпуск Pro будет содержать исправление, если вы захотите.) Чтобы обойти эту проблему, вы можете исключить переименование метода.

Также похоже, что у вас может быть ошибка в синтаксисе XAML - я считаю, что это должно быть Clicked=, а не Click=.

Полное раскрытие: я работаю в PreEmptive Solutions.

person Nathan Arthur    schedule 25.08.2016

В MS Docs , есть ObfuscationAttribute, к которому вы можете получить доступ

[ObfuscationAttribute(Exclude=true)]
void OnButtonClick(object sender, EventArgs e)
{
   //some logic.
}
person Chase Florell    schedule 25.08.2016
comment
Это хороший вариант. (Атрибут Обфускации). но это недоступно для PCL. Я могу использовать его в Android Project, но не для PCL. Спасибо :smile: - person ravindar; 26.08.2016