私は次のものを持っています:
Assembly asm = Assembly.GetAssembly(this.GetType());
foreach (Type type in asm.GetTypes())
{
MyAttribute attr = Attribute.GetCustomAttribute(type, typeof(MyAttribute)) as MyAttribute;
if(attr != null && [type is inherited from Iinterface])
{
...
}
}
その型が MyInterface から継承されているかどうかを確認するにはどうすればよいですか? このキーワードはこのように機能しますか?
ありがとう。
ベストアンサー1
いいえ、is
種類を確認するためだけに機能します物体、与えられたものではありませんType
。あなたが望むType.IsAssignableFrom
:
if (attr != null && typeof(IInterface).IsAssignableFrom(type))
ここでの順序に注目してください。私はほとんどいつもtypeof(...)
として使用する目標基本的に、true を返すには、ターゲットが「親」型で、引数が「子」型である必要があります。