我正在围绕第三方C ++库编写C#包装器,并且在新版本中将方法参数从uint更改为ulong。 我仍然需要支持旧版本,最好不要更改包装器接口。
现在我需要知道我是否可以调用新方法或旧方法。我已经测试过我可以在没有C#异常的情况下使用旧库调用新方法,但结果当然是错误的。
有没有办法检查是否存在具有特定参数类型的本机方法?或者可能是另一种方式呢?
这是改变方法的一个例子(注意值参数):
[DllImport("Foo.dll")]
public extern static uint Bar(IntPtr ptr, uint value, out IntPtr optr);
[DllImport("Foo.dll")]
public extern static uint Bar(IntPtr ptr, ulong value, out IntPtr optr);