C# 4.0 使用C将类对象作为调用方法的参数传递
使用Invoke方法将类对象作为参数发送的语法是什么 调用方法调用导致错误: “MSM\u ns.MyParameterClass”类型的对象无法转换为“MSM\u ns.MyParameterClass”类型 基本数据类型的参数工作正常,但复杂的数据类型会导致错误C# 4.0 使用C将类对象作为调用方法的参数传递,c#-4.0,.net-4.0,C# 4.0,.net 4.0,使用Invoke方法将类对象作为参数发送的语法是什么 调用方法调用导致错误: “MSM\u ns.MyParameterClass”类型的对象无法转换为“MSM\u ns.MyParameterClass”类型 基本数据类型的参数工作正常,但复杂的数据类型会导致错误 byte[] data = new byte[] { 0x01, 0x02, 0x03, 0x04 }; MyParameterClass myParams = new MyParametersClass("ABC", 123,
byte[] data = new byte[] { 0x01, 0x02, 0x03, 0x04 };
MyParameterClass myParams = new MyParametersClass("ABC", 123, 3.14159);
// attach to the dll
MethodInfo dllMethodInfo = Invoke.LoadDLL("MSM.dll", "MSM_ns", "MSMClass", "MSMMethod1");
// attach the parameters
object[] parameters = new object[2];
parameters[0] = data;
parameters[1] = myParams;
// call the DLL
bool result = (bool)dllMethodInfo.Invoke(null, parameters);
--------
public static bool MSMMethod1(ref byte[] dataToVerify, MyParameterClass myParams)
{
. . .
}
您加载同一程序集两次,使用两个相同但不兼容的类型
您只需加载程序集一次。参数几乎肯定不应该是refWhat's Invoke.LoadDLL?//MethodInfo dllMethodInfo=Invoke.LoadDLLMSM.dll,MSM_ns,MSMClass,msmethod1;Assembly dll=Assembly.LoadFileMSM.dll;类型classObj=dll.GetTypeMSM_ns+。+MSM类;MethodInfo dllMethodInfo=classObj.GetMethodMSMMethod1//MethodInfo dllMethodInfo=Invoke.LoadDLLMSM.dll,MSM_ns,MSMClass,msmethod1;Assembly dll=Assembly.LoadFileMSM.dll;类型classObj=dll.GetTypeMSM_ns+。+MSM类;MethodInfo dllMethodInfo=classObj.GetMethodMSMMethod1;