在项目中碰到个问题,现在求教大虾们。
有一个第三方工具,定时执行Service,后来由于定时功能块出现问题,现在需要写一个Console来直接执行该Service(直接引用的原Service.exe),也就是不需要定时执行的功能了,但原Service中的执行方法全是Private,所以暂时想不到什么好的方法可以调用原Service中的,请问哪位大虾可以提出一个好的思路,最好不要整个Service全重写。
有一个第三方工具,定时执行Service,后来由于定时功能块出现问题,现在需要写一个Console来直接执行该Service(直接引用的原Service.exe),也就是不需要定时执行的功能了,但原Service中的执行方法全是Private,所以暂时想不到什么好的方法可以调用原Service中的,请问哪位大虾可以提出一个好的思路,最好不要整个Service全重写。
private void DoSomething()
{
//...
//...
//...
}public void DoSth()
{
DoSomething();
}
我是直接引用的原Service.exe,而我又不能去动原来Service.exe里面的代码,只能另外写,而另外写就会出现很多问题,方法倒好说,但原文件里面的那些控件之类的就不好控制了。唉,头痛啊
现在就是由于定时执行模块出现问题(VB),所以需要用一个console程序来直接执行该程序,但原程序中方法全是Private型,而且不能修改原程序Service.所以不知道怎么直接调用执行功能块,整个文件重写呢,但又有更多的问题,比如控件申明,逻辑结构等问题。
这个肯定是不行的了。。不然就违背面向对象了。。既然有pubic private这些关键字,肯定是有他的作用。。
面向对象语言唯一处理这种情况的方式就是"重写"原来类中的方法。。这里又有问题了,“重写”的话,原类中的方法必须是虚函数。虚函数默认就是public(好像是这样,说的不对清原谅)所以你现在只有“重新写”而不是重写。个人理解,说的不对清指教
现在如果能写个console程序来定时模拟一下原Service的Button点击事件,也能达到原需求。但这样就会涉及到WinForm以及很多Windows的API函数。可惜不熟悉,谁能写下?