使用MEF生成/打印自定义报告?

时间:2012-10-04 21:01:55

标签: c# .net-4.0 mef

我有一个为最终用户生成报告的应用程序。这些是DevExpress XtraReports。一个用户可能想要某种格式的某些字段的报告,而另一个用户可能想要不同格式的相同字段或更多字段。而不是做类似的事情:

if(user == "")
   //print report for this user
   PrintReport(user);
else
  //print report for other user
  PrintReport(user)

我认为最好在这里使用MEF并创建一些IPrintReport接口并让MEF管理哪个报告应该打印,具体取决于我{{{目录中的哪个程序集1}}方法。这是使用PrintReport的好方案还是有更好或更简单的方法来处理它?<​​/ p>

1 个答案:

答案 0 :(得分:0)

我认为这是MEF可以用来解决问题的情况,但我首先会问自己一个问题:

  • 我是否需要添加其他报告格式而无需重新编译主应用程序?

如果没有,我认为MEF对于这种情况来说是过度的。我从使用MEF看到的主要好处是我的应用程序的模块可以独立于主应用程序开发。我不需要重新发布我的整个应用程序来修复其中一个组件中的小错误。我可以简单地将我的新.dll放到一个文件夹中,我的应用程序将开始使用它。

如果您对上述问题的回答为“否”,我将不会使用MEF。相反,我会创建你提到的IPringReport接口。实现此接口的所有类都可以在您的应用程序设置中列出,用户可以在其中选择所需的格式。如果您的用户不想处理选择格式,您可以只设置一个设置文件来为其设置。