2016-08-25 6 views
2

私はxamarinフォームを使用してxamarinアプリケーションを開発しています。
xamlファイルにはボタンがあり、c#にはonclick関数があります。Xamarin c#xaml難読化データバインディングの競合

XAML

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

コード難読化する前に

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

の背後に、アプリケーションは正常に動作します。
ただし、難読化後、
C#では、関数名(OnButtonClick)は難読化されています
xamlでは、名前(OnButtonClick)は同じままです。

この競合のため、アプリケーションはエラーをスローします。
開発ツール のVisual Studio 2015
Dotfuscatorコミュニティ版
MS Docs

答えて

1

4.0.4.4 xamarin、あなたがアクセスできるObfuscationAttributeありますXAMLが正しく変更されますほとんどの状況で

[ObfuscationAttribute(Exclude=true)] 
void OnButtonClick(object sender, EventArgs e) 
{ 
    //some logic. 
} 
+0

これは良い選択です。 (ObfuscationAttribute)。しかし、それはPCLには利用できません。 Androidプロジェクトでは使用できますが、PCLでは使用できません。 ありがとう:笑顔: – ravindar

3

。しかし、Xamarinが異常なバージョンの文字列でXAML/XMLを生成し、Dotfuscatorがそれを処理しないバグを認識しました。我々は修正を予定していますが、Visual Studioの新しいバージョンがDotfuscator CEに修正されてリリースされるまでは利用できません。 (私たちの次のProのリリースでは、これがあなたのためのオプションである場合に修正されます)。この問題を回避するには、exclude the method from renamingがあります。

XAMLの構文に間違いがあるようですが、それはでなく、Click=であるはずです。

詳細情報:私はPreEmptive Solutionsで働いています。