내가 System.Reflection.Emit을 사용하고, 어떤 점에서 나는 MethodBuilder에서 대리자를 만들려면 : 나는 정적 함수 뭔가 대표단을 만들 것을 찾을 수ILGenerator : 부하 생성 방법
MethodBuilder fooBuilder = createFooMethodBuilder();
ILGenerator ilGenerator = ...
Type delegateType = typeof(DelegateType);
LocalBuilder delegateVar = ilGenerator.DeclareLocal(delegateType);
//Somehow create emit instructions to create delegate from fooBuilder
//Store delegate in delegateVar using
다음과 같이 사용됩니다 :
ldnull
ldftn void class Test.MainClass::bar()
newobj instance void class Test.DelegateType::'.ctor'(object, native int)
하지만 지금은 붙어 있습니다. MethodBuilder를 ldftn하는 방법이 필요하다. 그리고 다음 줄에 대한 지시를 내릴 방법이 필요하다. 그리고 네이티브 int를 받아들이는 생성자를 얻는 방법을 모른다.
제안 사항?
흥미로운 질문입니다. 솔루션을 얻지 못하면 [Delegate.CreateDelegate] (http://msdn.microsoft.com/en-us/library/system.delegate.createdelegate.aspx)를 대신 호출 할 수 있습니다. – dtb