开发者社区> 问答> 正文

C#中MethodInfo.Invoke报错:路径中带有非法字符 ?报错

问题是这样的:本机是win7系统,vs2012开发工具。当我创建一个窗体项目,生成为类库文件后,传到服务器上,后台调用这个文件后,下载到本地,生成为Assembly类型的数据,根据传入的类型命名空间和类型名得到type类型数据,根据方法名称得到MethodInfo类型数据,然后调用MethodInfo.Invoke方法后,就可以执行这个方法了。但是这个写法在我win764位平台跑是完全没问题的,但是发到其他windows平台就报错:路径中带有非法字符,不知道是什么原因,有没有大神能帮忙的,上一段代码:
F_NAMESPACE = sender["F_NAMESPACE"].ToString();
F_FUNCTIONNAME = sender["F_FUNCTIONNAME"].ToString();
F_ClASSNAME = sender["F_ClASSNAME"].ToString();
if (string.IsNullOrEmpty(F_ClASSNAME) || string.IsNullOrEmpty(F_FUNCTIONNAME) || string.IsNullOrEmpty(F_NAMESPACE)) return false;

            Assembly assembly = GetAssembly(sender);
            if (assembly == null) return false;
            Type type = null;
            MethodInfo mshow = null;
            type = assembly.GetType(F_NAMESPACE + "." + F_ClASSNAME);
            object obj = System.Activator.CreateInstance(type);
            mshow = type.GetMethod(F_FUNCTIONNAME);

            string str = sender["F_DLLFTP"].ToString();
            //mshow.Invoke(obj, new object[] { psender });
            mshow.Invoke(obj,null);

希望有大神能够帮忙,重谢

展开
收起
爱吃鱼的程序员 2020-06-23 14:02:21 436 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    Assemblyassembly=GetAssembly(sender);
    type=assembly.GetType(F_NAMESPACE+"."+F_ClASSNAME);
    这两行调试下

    调试了,是可以的,完全没有问题,就是在调用MethodInfo.Invoke的时候报错,但是在win764bit下又没有错

    2020-06-23 14:02:39
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载