.NET TIPS WPFアプリケーションに含まれるXAMLファイルの内容を確認するには?デジタルアドバンテージ 遠藤 孝信2008/11/13 |
|
|
.NET Reflector*1を使えば、.NETで作成されたアプリケーションを逆コンパイルし、そのソース・コードを確認することができる。
*1 現在の正式名称は「Red Gate's .NET Reflector」。本稿執筆時点の最新バージョンは「5.1.4.0」。.NET Reflectorについては「.NET Tools:.NET逆コンパイラとコードを難読化するDotfuscator」で解説している。 |
ただし、アプリケーションがWPFアプリケーションの場合、ユーザー・インターフェイスを定義しているXAMLのコードについては、単にBAML形式のリソース(バイナリ化されたXAMLファイル)として表示されるため、その内容までは確認できない(画面1)。
しかし、.NET Reflectorに「BAML Viewer」というアドイン(Add-In)を追加すれば、BAML形式のリソースを展開し、元のXAMLコードを確認することができるようになる。
以下の画面2は、実際にBAML Viewerを使って、WPFアプリケーションに含まれるXAMLのソース・コードを表示しているところだ。
画面2 BAML ViewerによるXAMLコードの表示 |
本稿では、このBAML Viewerのダウンロードから起動までについて紹介する。
BAML Viewerのインストールと実行
.NET Reflectorについては、多くのユーザーによって、たくさんのアドインが開発されており、BAML Viewerもその1つである。アドインの多くは「.NET Reflector Add-Ins」に集められている(画面3)。
画面3 CodePlex内にある.NET Reflector用アドインのページ |
ページ内のアドイン一覧から「BamlViewer」をクリックすると、BAML Viewerのページに移動する(画面4)。
画面4 BAML Viewerのページ |
BAML Viewerのダウンロードは、「Reflector 5.0 Add-Ins」のページで、「BamlViewer.zip」のリンクをクリックする。
BamlViewer.zipをダウンロードしたら、これに含まれている「Reflector.BamlViewer.dll」を適当なフォルダ(Reflector.exeと同じフォルダなど)に展開する。
次に、.NET Reflectorを実行し、メニューの[View]−[Add-Ins]を選択して[Add-Ins]ダイアログ(画面5)を開き、[Add]ボタンをクリックして、いま展開した「Reflector.BamlViewer.dll」を追加する。そして[Close]ボタンにより[Add-Ins]ダイアログを閉じる。
画面5 [Add-Ins]ダイアログで追加したBAML Viewerのアドイン |
メニューの[View]−[Add-Ins]により開く。[Add]ボタンをクリックして、「Reflector.BamlViewer.dll」を追加する。 |
これでアドインの設定は完了だ。この状態でメニューの[Tools]を開くと、[BAML Viewer]という項目がメニュー末尾に追加されているはずだ(画面6)。
画面6 [Tools]メニューに追加された[BAML Viewer] |
後はこの[BAML Viewer]を実行すれば、冒頭の画面2のような[BAML Viewer]ウィンドウが開き、BAML形式のリソースを選択することにより、その下にXAMLのコードが表示される。
利用可能バージョン:.NET Framework 3.0以降 カテゴリ:WPF/XAML 処理対象:ツール |
|
「.NET TIPS」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|