Windows 8ストアアプリで特定のインターフェイスを実装するクラスのリストを取得しようとしていますが、WinRTではリフレクションが大きく異なるようで、これまでのところ、その良い例を見つけることができませんでした。
現在のアセンブリをロードしてループする方法を知っている人はいますか?
どんな助けでも大歓迎です:)
Windows 8ストアアプリで特定のインターフェイスを実装するクラスのリストを取得しようとしていますが、WinRTではリフレクションが大きく異なるようで、これまでのところ、その良い例を見つけることができませんでした。
現在のアセンブリをロードしてループする方法を知っている人はいますか?
どんな助けでも大歓迎です:)
MSDNフォーラムから回答を得ました。他の誰かが同じものを探している場合に備えて、ここに投稿してください。
このコードは、IDisposableインターフェースを実装するすべてのクラスを取得します。
// We get the current assembly through the current class
var currentAssembly = this.GetType().GetTypeInfo().Assembly;
// we filter the defined classes according to the interfaces they implement
var iDisposableAssemblies = currentAssembly.DefinedTypes.Where(type => type.ImplementedInterfaces.Any(inter => inter == typeof(IDisposable))).ToList();