我是关于如何从动态加载的dll回调主exe的想法? (注意:这个dll将在回调后的某个时刻卸载)
Context C#
我正在开发一个服务原型,在开发过程中,稍后可以更新其核心。我有一个存根主,它将服务调用进入“主dll”。我希望能够回调主exe,告诉它在完成最新dll的新副本后重新加载核心dll。我有负载 - 卸载工作。但是,我无法获得回传或更新传递的IntPtr工作和其他类似的想法。 E.g。
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);
答案 0 :(得分:1)
如果您只需要重新加载活动,请检查EventWaitHandle
。一旦服务调用WaitOne()
,您的存根就可以Set()
对该句柄进行相应的操作。