本节主要介绍WF4.0框架如何实现松耦合。

 

我在学WF4.0时一直带着一个问题在学习。这个问题是不需要改代码重新编绎的条件下,如何把一个别人写好的Activity嵌入到我的程序中来?

于是我做了一个简单的例子:

先编辑了一个这样子的Xaml文件,如下图所示:

 

这个文件内容的产生,是通过前一节工程项目中的Activity1.Xaml来的。直接复制,另存为 C:\temp\3rd.xaml好了。

然后直接写代码如下:

这样就把一个别人写好的Activity通过后期加载到我的程序中来了。

诚然,这种方式离我松耦合的需求还有些距离。我需要的是A Team做一部分Activity,B Team做一部分Activity,最终能融合成一个应用。

但上帝开了一扇门,剩下的路需要我们自己去走。

于是我又做了如下一个尝试:

 1、首先我写了一个类,如下:

代码如下:

然后生成DLL。至此,我写了一个Activity,其内部就干了一件最简单的事,输出"My Activity output"。至于写一个类为啥要继承CodeActivity,暂且按下不表。

2、改写 C:\temp\3rd.xaml,如下:

在上面的3rd.xaml文件中,我们在两个Activity上层套了一个标签,叫Sequence,其意是顺序干活。那么我们希望输出Hello World后再输出 MyActivity Output

3、将 DLL拷贝至宿主程序的EXE所在目录一起

3、宿主程序代码不变:

 

 F5运行之,可以看到如下结果输出:

 至此,离我心中所思的松耦合相去不远矣!

 

posted on 2017-12-07 17:48  王建全  阅读(180)  评论(1编辑  收藏  举报