我正在编写一个.netCF应用程序,它可以连接到不同硬件平台上的条形码扫描器。 I. E. Motorola或Intermec等。我用他自己的DLL包装了他们的DLL以提供一个通用接口,我在运行时使用Reflection LoadFrom()加载我的dll,然后获得一个Method参考。
我可以将大多数参数传递给我的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);
}
}