XAML の考慮事項
XAML の書き換え
Dotfuscator は次の項目を分析し、更新します。
- バインディング マークアップ拡張機能。式内の基本プロパティが、そのノードよりも上にある XML 階層内のクラスに属している場合。
- 例:
<Textbox Text="{Binding Path='Dealership.SalesTeam'}">
- 要素名。(名前空間に基づいて)入力内で見つかるクラスによって裏付けられると判断した場合。
- 一致が見つかった場合は、属性/子ノードも適切に書き換えます。
XAML の書き換えの制限
Dotfuscator は次の項目を処理しません。
- 実際の XML 名前空間
- テンプレート/スタイル内の項目の更新を試みますが、あまり正しく行えない可能性があります。一般的に、テンプレート/スタイルから参照されるプロパティと型を除外することをお勧めします。
- 添付プロパティ/イベント
- XAML 参照のバッキング フィールド、メソッド、および登録名は更新しません。
最適な方法
以下のものを手動で除外します。
- すべての添付プロパティおよび添付インベント。
- 添付プロパティおよび添付インベントの、すべてのバッキング フィールドおよび登録メソッド。
System.Windows.DependencyProperty
型のフィールドを探します。
System.Windows.DependencyObject
型のパラメーターを持つメソッドを探します。
- 残念ながら、現在のバージョンでは、カスタム規則でこれをサポートできません。そのため、すべてのインスタンスを手動で検出する必要があります。
- テンプレート/スタイルから参照されるすべてのプロパティ(場合によっては、入力内で同じリテラルの名前を持つその他すべてのプロパティ)。
XAML ビルド警告
Dotfuscator で XAML の部分を分析して、CLR オブジェクトと適合させることができない多くの場合は、警告を発して、それらは手動で変更を加える必要があることをユーザーに知らせます。ランタイム エラーの原因を特定しようとする場合は、警告をチェックすることが重要です。