private void DllInvoke(string DllFileName, string NameSpace, string ClassName, string MethodName, object[] ObjArrayParams)
{
try
{
Assembly DllAssembly = Assembly.LoadFrom(DllFileName);
Type[] DllTypes = DllAssembly.GetTypes();
foreach (Type DllType in DllTypes)
{
if (DllType.Namespace == NameSpace && DllType.Name == ClassName)
{
MethodInfo MyMethod = DllType.GetMethod(MethodName);
if (MyMethod != null)
{
object mObject = Activator.CreateInstance(DllType);
//MyMethod.Invoke(mObject, new object[] { ObjArrayParams });
LogicalMethodInfo myLogicalMethodInfo = (LogicalMethodInfo.Create(new MethodInfo[] { MyMethod }))[0]; IAsyncResult myAsyncResult = myLogicalMethodInfo.BeginInvoke(mObject, new object[] { ObjArrayParams }, null, null);
}
}
}
}
这个方法调用时为什么一直提示参数类型不匹配?
{
try
{
Assembly DllAssembly = Assembly.LoadFrom(DllFileName);
Type[] DllTypes = DllAssembly.GetTypes();
foreach (Type DllType in DllTypes)
{
if (DllType.Namespace == NameSpace && DllType.Name == ClassName)
{
MethodInfo MyMethod = DllType.GetMethod(MethodName);
if (MyMethod != null)
{
object mObject = Activator.CreateInstance(DllType);
//MyMethod.Invoke(mObject, new object[] { ObjArrayParams });
LogicalMethodInfo myLogicalMethodInfo = (LogicalMethodInfo.Create(new MethodInfo[] { MyMethod }))[0]; IAsyncResult myAsyncResult = myLogicalMethodInfo.BeginInvoke(mObject, new object[] { ObjArrayParams }, null, null);
}
}
}
}
这个方法调用时为什么一直提示参数类型不匹配?
public void beginsearch(object[] obj)
{
string tkey = obj[0].ToString();
}
为毛我运行 //MyMethod.Invoke(mObject, new object[] { ObjArrayParams });这句就没事啊