dotnet 2.0 を使用しています
EventInfo 値を使用すると、アセンブリの型をループして、EventInfo デリゲート定義 ( EventInfo.EventHandlerType ) に一致するすべてのメソッドを見つけることができることを知っています。
最初にすべての参照アセンブリをループしてすべてのデリゲート定義を見つけることなく、特定の MethodInfo を Delegate.CreateDelegate() 関数で割り当てることができる利用可能なデリゲートを見つける方法はありますか?
または、私は次のことをしている:
public bool MethodInfoDelegateSearch( MethodInfo mi ) {
System.Collections.Generic.List<Type> delegateTypes = new System.Collections.Generic.List<Type>();
foreach ( Assembly a in AppDomain.CurrentDomain.GetAssemblies() )
foreach ( Type t in a.GetTypes() ) {
if ( t.IsSubclassOf( typeof( Delegate ) ) )
delegateTypes.Add( t );
}
for ( int i = 0; i < delegateTypes.Count; i++ ) {
Type t = delegateTypes[i];
/*
* here is where to attempt match the delegate structure to the MethodInfo
* I can compare parameters or just attempt to create the delegate
*/
try {
Delegate.CreateDelegate( t, mi, true );
return true;
} catch {
}
}
return false;
}