[英]Callback from dynamically loaded DLL
我对如何从动态加载的dll回调到主exe有想法? (注意:该DLL将在回调后的某个时刻被卸载)
上下文C#
我正在对服务进行原型设计,然后在开发过程中随后可以更新其核心。 我有一个存根main,它将把服务调用到“ main dll”中。 我希望能够回调到主exe,以告诉它在完成最新dll的新副本后重新加载核心dll。 我有负载-卸载工作。 但是,我无法回调或更新已传递的IntPtr使其正常工作,而无法获得其他类似的想法。 例如
loader.ExecuteStaticMethod(cMain_DLL, "Class1", "My_CallBack", new object[] {out _Count });
不会编译
我使用了稍微修改过的http://www.c-sharpcorner.com/uploadfile/girish.nehte/how-to-unload-an-assembly-loaded-dynamically-using-reflection/来加载和卸载dll,就像以及dll中的调用函数。
Type[] types = parameters.Select(o=>o.GetType()).ToArray();
MethodInfo MyMethod = MyType.GetMethod(methodName, types); <= can retun null for some objects
MyMethod.Invoke(inst, BindingFlags.InvokeMethod, null, parameters, null);
如果只需要重载事件,请检查EventWaitHandle
。 一旦服务调用Set()
,您的存根就可以在该句柄上使用WaitOne()
并相应地进行操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.