2012-01-04 14 views
32

C#メトロスタイルでIsSubclassOfまたはIsAssignableFromのための任意の代替はありますか?IsSubclassOfまたはIsAssignableFromのための任意の代替

私はメトロで、このコードの実行を作るしようとしているが、代替手段を見つけることができません。

if ((ui.GetType() == type) || (ui.GetType().IsSubclassOf(type))) 
{ 
    return true; 
} 

答えて

54

多くの反射方法は、System.Reflection.TypeInfoクラスにあります。

あなたはSystem.Reflection.IntrospectionExtensionsによって提供さGetTypeInfo拡張メソッドを使用して、あなたのTypeためTypeInfoのインスタンスを取得することができます:

using System.Reflection; 

// ... 

ui.GetType().GetTypeInfo().IsSubclassOf(type) 
+0

反射法の多くは、メトロスタイルWindows 8の.NET Frameworkで利用できません。これが私が代替案を探していた理由です。しかし、私は代替がないと思うので、明示的な型で "is"または "as"を使用する必要があるようです。 –

+0

@MichaelSync:私はあなたがなぜ代替手段がないと言うのか理解できません。 'TypeInfo'はあなたのために働かないのですか?そうでない場合は、どうしてですか? –

+0

メトロ網の参照を見てください。 http://msdn.microsoft.com/en-us/library/windows/apps/hh441595(v=vs.110).aspx ..種類がたくさんあり、正確に、何を探してるんですか.. –

15

あなたはこれを使用することができます:これはメトロで動作

using System.Reflection; 

// ... 

ui.GetTypeInfo().IsAssignableFrom(type.GetTypeInfo()); 

を。

関連する問題