簡體   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