カスタム属性を使用しているクラスを見つけるために次のように機能するのはなぜですか。
Assembly [] assemblies = AppDomain.CurrentDomain.GetAssemblies();
foreach(Assembly a in assemblies)
{
foreach(Type t in a.GetTypes())
{
object [] attributes = t.GetCustomAttributes(typeof(TestingAttribute), false);
foreach(object o in attributes)
{
Debug.Log(o is TestingAttribute);
}
}
}
このメソッドと、StackOverflow で見つけた同様のメソッドはそうではありません。このコードは Unity3d で実行されます。結果は空です。
Assembly [] assemblies = AppDomain.CurrentDomain.GetAssemblies();
foreach(Assembly a in assemblies)
{
var attributes = a
.GetCustomAttributes(typeof(TestingAttribute), false)
.Cast<TestingAttribute>();
foreach(TestingAttribute t in attributes)
{
Debug.Log(t);
}
}