c#怎么能控制执行过程

quanzhan 2018-08-13 11:30:00
比如 在一个函数里有这样几句,程序正常执行,因为不满足dllFun的执行环境,我希望能跳过flag=(bool)dllFun.Invoke这句,直接执行后面的代码。
bool flag=false;
flag=(bool)dllFun.Invoke(obj, parameters);
if(flag)
return true;

通过打断点,是可以手动跳过的。但是程序里这样的地方很多,在不改变这里的代码,并且程序正常执行的前提下,可以新建一个方法来控制这里的执行流程,比如识别到程序要调用flag=XXX的代码,我就跳过。有没有这样的技术啊,希望各位大侠指点。
...全文
263 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
quanzhan 2018-09-20
  • 打赏
  • 举报
回复
AOP emit 等技术是我寻找答案的方向
liulilittle 2018-08-13
  • 打赏
  • 举报
回复
利用流程控制语句,这个是语法层面的问题。
  • 打赏
  • 举报
回复
引用 楼主 w1p000 的回复:
在不改变这里的代码,并且程序正常执行的前提下,可以新建一个方法来控制这里的执行流程,比如识别到程序要调用flag=XXX的代码,我就跳过。有没有这样的技术啊,


这样的程序谁敢乱用?代码是一套,而执行时诡异地、离散地、不知道哪里控制着胡乱跳转的另外一套。凡是搞诡异的控制乱跳的,都没有好的开发和调试的下场。
  • 打赏
  • 举报
回复
你学习编程时,学过 if 判断语句不?
正怒月神 2018-08-13
  • 打赏
  • 举报
回复
感觉没什么好办法。
以前都是打断点,手动拖下去的。
不过#6说的也是一个办法
xuzuning 2018-08-13
  • 打赏
  • 举报
回复
flag=(bool)dllFun.Invoke(obj, parameters);
本身并无问题
而执行失败自然就包含有 不满足dllFun的执行环境 的因素
建议不要去做画蛇添足的事情
独立观察员 2018-08-13
  • 打赏
  • 举报
回复
条件编译(#if DEBUG) 了解一下
cheng2005 2018-08-13
  • 打赏
  • 举报
回复
找个专业的架构师,或者是高级工程师,好好梳理一下你们的项目结构吧。不然早晚是崩溃的结果。
quanzhan 2018-08-13
  • 打赏
  • 举报
回复
多谢各位的回复,目前是代码里有大量这种需要调用第三方dll操作数据库返回结果的函数,由于分支比较多,代码不能轻易修改,不然可能出现异常。如果不跳过,本地没法运行调试。(可以打断点,这样效率太低)
控制语句是可行,但是需要把全部cs文件都单独复制一份出来,再修改。如果后续原文件有功能上的修改,复制出来的cs文件也需要同步修改。
所以想请教各位有没有什么方法能在新建的一个函数里操作原来的代码(加控制语句也行),这样比较好维护。

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧