繁体   English   中英

从动态加载的DLL进行回调

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM