2012-01-24 51 views
2

我正在編寫一個.netCF應用程序,該應用程序在不同硬件平臺上與條形碼掃描器進行接口連接。 I. E.摩托羅拉或Intermec等我用自己的DLL包裝了一個公共接口,我在運行時使用Reflection LoadFrom()加載我的dll,然後獲取一個Method引用。如何將回撥委託傳遞給.netCF中的dll

我能夠將大多數參數傳遞給我的DLL中的方法,但有一個例外。我需要將回調函數傳遞給dll,以便在發生讀取時將回調到主程序中以處理讀取的條形碼。

當我調用該方法時,它拋出一個ArgumentException。

我的問題是如何將此方法引用傳遞給我的dll,或者有沒有更好的方法來做到這一點?

public delegate void ReadNotify(BCReadData readData); 

    public void AttachReadNotify(ReadNotify ReadNotifyHandler) 
    { 
     if (type == ReaderType.UNKNOWN || scanIntf == null) 
      return; 
     try 
     { 
      setReadNotify.Invoke(scanIntf,new Object [] {ReadNotifyHandler}); 
     } 
     catch (Exception e) 
     { 
      throw new Exception("Unable to set notify handler" + e.Message); 
     } 

    } 
+1

你的本地方法的簽名是怎樣的? – Groo

回答