浏览:213 2008-06-16 10:28 来自 【组长】veter      :

首先,我没有运行到程序,因为转换失败,我用VS2008,再次,没有数据库,然后我还觉得整个程序可能有一点点过于累赘.

对于这个问题,我仔细看了你的示例;发现几个问题,这里仅作为参考.

1:用于工作流调用的扩展服务接口(ExtendServiceInstance.ICharge)并没有得到外部实现,按照你的整个程序来看,BLL层应该是会去实现这个接口或者调用这个接口的实现类.如果你仔细观察HostWorkFlow这个示例,会发现它比你多一点点代码,在开始工作流之前:

ExternalDataExchangeService dataExchangeService = new ExternalDataExchangeService();
workflowRuntime.AddService(dataExchangeService);

这三句话的意思是将扩展服务添加到当前的工作流运行时中.

最好再加上一句:workflowRuntime.AddService(this); 

将要运行工作流的宿主也参与到到工作流运行时中来.

当然,这在你的程序中没有看到.

最后还有几点不明白的就是:为什么你会通过BLL层来调用DAL呢?你已经使用了工作流,这样BLL中就完全没有必要写上任何的业务逻辑代码了,这项工作应该是由工作流来完成的,包括对DAL的调用也是应该是在工作流中完成的.BLL主要的精力被分散了,它的主要工作应该是控制工作流的走向的吧?

收藏 楼主
  3个月前  真de最后Yi吻      :
1.BLL层做数据的操作用,比如添加,编辑,删除,获取DataGrid数据源等用...
2.工作流的走向不是在Icharge先定义事件,然后在宿主程序中根据业务需求来控制的吗?...比如:axBtnSubmit_Click事件中的//事件没有执行...不知道为什么...
chargeService.RaiseInitStartEvent(instance.InstanceId);
3.你说的使用了工作流,业务逻辑代码由工作流来完成是什么意思?可以就我的代码说明下吗?谢谢老.
1楼 回到顶楼 
  3个月前 【组长】 veter      :
我的意思是说:在BLL层中应该只有调用和返回,没有其它的逻辑实现了.而且DAL的东西也不应该出现在BLL中,应该出现在工作流中,当然,你具体运行的配置我没有看到,就是你的asp.net程序集没有加载到,在你提供的示例中没有.建议你仔细看一下"HostWorkFlow"示例中的program.cs文件,里面有对扩展服务和业务调用的具体实现,并实现工作流的走向控制.
2楼 回到顶楼 
  3个月前  真de最后Yi吻      :
恩.好的.谢谢了.
3楼 回到顶楼 
  3个月前  真de最后Yi吻      :
看到错误了,chargeService = new Charge();//实例化charge服务类,每次页面加载都执行了这个,所以控制工作流时,传到ICharge里的事件都是空...
4楼 回到顶楼 

注册用户登录后才能回复,登录注册
> 返回“Windows Workflow[WF]”


其他话题

相关内容

相关链接

1 26882