BT

Windowsストアアプリに対するReflection APIの変更

| 作者: Roopesh Shenoy フォローする 0 人のフォロワー , 翻訳者 尾崎 義尚 フォローする 0 人のフォロワー 投稿日 2012年9月5日. 推定読書時間: 2 分 |

原文(投稿日:2012/08/31)へのリンク

 

Windowsストアアプリ向けの.NET APIサブセットは、完全な.NET Framework 4.5よりも大幅に小さくなっている。特にReflection.Emitは提供されておらず、System.TypeクラスのほとんどのメンバーはSystem.Reflection.TypeInfoに移動された。

.NETチームは、System.Typeを– System.Reflection.TypeInfoと縮小版のSystem.Type –の2つのクラスに分割して、主に型の定義と型の参照の関心を分離した。アセンブリを扱うときには、この種類の分割はすでに存在していた。Brandon Bray氏は、.NET Reflection APIの進化という記事で説明する -

System.Reflection.Assemblyクラスは、アセンブリの定義を表すのに対して、System.Reflection.AssemblyNameクラスは、アセンブリの参照を表します。前者はリッチな機能を公開し、後者は単純にあなたが望む定義を取得する手助けをします。これはまさに私たちがSystem.Typeに採用したかったモデルです。

TypeはただTypeへの参照を提供し、その型に関する全てのメタデータを読み込まなくなった。型に関するリッチな情報は、TypeInfoの中に移動した– メタデータにアクセスして型のTypeInfoを取得することができる。これによるアドバンテージは、Typeオブジェクトにアクセスしても、アセンブリの読み込みが必要ない – TypeInfoクラスにアクセスするときだけ必要になる。これは、アセンブリを読み込むかどうかは、開発者がなにを実現したいのかによって制御できることを意味する。

Reflection APIはまた、よりよいワーキングセットと応答性のために、配列の代わりにIEnumerableを多くのメソッドの戻り型として使用するようになった。

互換性: 新しいReflection APIには互換性のない変更はない – Windowsストアアプリには新しいモデルの使用が必要だが、.NET Framework 4.5を対象にしたコードでは、Reflectionの早期 (.NET 4.0モデル)と新しいモデルの両方を使うことができる。これを達成するため、.NET Frameworkの型は少し異なる型海藻を使用する。.NET 4.5とWindowsストアアプリの間でコードを再利用する場合、Microsoftはポータブルクラスライブラリとしてパッケージすることを推奨している。

 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT