服务重写问题

jiujiang88 2009-06-03 10:50:20
在项目中碰到个问题,现在求教大虾们。
有一个第三方工具,定时执行Service,后来由于定时功能块出现问题,现在需要写一个Console来直接执行该Service(直接引用的原Service.exe),也就是不需要定时执行的功能了,但原Service中的执行方法全是Private,所以暂时想不到什么好的方法可以调用原Service中的,请问哪位大虾可以提出一个好的思路,最好不要整个Service全重写。
...全文
116 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiujiang88 2009-06-04
  • 打赏
  • 举报
回复
回12楼

我说的另外写意思就是你的”重新写“,只是原service是VB,而我用reflector反编译过来是C#,所以有很多语法错误,而更头痛的是全是些Private方法,现在重新写这个方法也挂掉了,现在只有想个办法来实现事件模拟,也就是说原Service可以直接点击执行,也就是不要以前的定时执行功能。
现在如果能写个console程序来定时模拟一下原Service的Button点击事件,也能达到原需求。但这样就会涉及到WinForm以及很多Windows的API函数。可惜不熟悉,谁能写下?
hecker728 2009-06-03
  • 打赏
  • 举报
回复
这个好像没什么其他好的办法。
红帽小小 2009-06-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 jiujiang88 的回复:]
楼上的意思还是相当于把整个文件给写一篇,只是把类型从Private改成Public,不然你只写几个Public的话,肯定后面调用其他方法,还是要全部重新写一篇。
[/Quote]
不用全部重写嘛,比如这样

priv
private void DoSomething()
{
//...
//...
//...
}

public void DoSth()
{
DoSomething();
}
guoyichao 2009-06-03
  • 打赏
  • 举报
回复
用反射直接调用private方法,不过这样做就无法靠编译器帮你检查调用错误了。
jiujiang88 2009-06-03
  • 打赏
  • 举报
回复
楼上的意思还是相当于把整个文件给写一篇,只是把类型从Private改成Public,不然你只写几个Public的话,肯定后面调用其他方法,还是要全部重新写一篇。
红帽小小 2009-06-03
  • 打赏
  • 举报
回复
写几个public的方法把原来private的方法封装了公布出来
jiujiang88 2009-06-03
  • 打赏
  • 举报
回复
为什么C#区没人解答问题吗?
jiujiang88 2009-06-03
  • 打赏
  • 举报
回复
老规矩,自己SF
hecker728 2009-06-03
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 jiujiang88 的回复:]
你这方法应该是适合修改原来代码吧?
我是直接引用的原Service.exe,而我又不能去动原来Service.exe里面的代码,只能另外写,而另外写就会出现很多问题,方法倒好说,但原文件里面的那些控件之类的就不好控制了。唉,头痛啊。。。。。。。。。
[/Quote]

这个肯定是不行的了。。不然就违背面向对象了。。

既然有pubic private这些关键字,肯定是有他的作用。。
面向对象语言唯一处理这种情况的方式就是"重写"原来类中的方法。。

这里又有问题了,“重写”的话,原类中的方法必须是虚函数。虚函数默认就是public(好像是这样,说的不对清原谅)

所以你现在只有“重新写”而不是重写。

个人理解,说的不对清指教
jiujiang88 2009-06-03
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 xieqi 的回复:]
计划任务啊。定时执行cmd命令
[/Quote]

现在就是由于定时执行模块出现问题(VB),所以需要用一个console程序来直接执行该程序,但原程序中方法全是Private型,而且不能修改原程序Service.所以不知道怎么直接调用执行功能块,整个文件重写呢,但又有更多的问题,比如控件申明,逻辑结构等问题。
xieqi 2009-06-03
  • 打赏
  • 举报
回复
计划任务啊。定时执行cmd命令
jiujiang88 2009-06-03
  • 打赏
  • 举报
回复
求教高手啊,难啊。。。。。。。。。。。。
jiujiang88 2009-06-03
  • 打赏
  • 举报
回复
你这方法应该是适合修改原来代码吧?
我是直接引用的原Service.exe,而我又不能去动原来Service.exe里面的代码,只能另外写,而另外写就会出现很多问题,方法倒好说,但原文件里面的那些控件之类的就不好控制了。唉,头痛啊。。。。。。。。。

110,534

社区成员

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

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

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