0

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

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

我认为在MEF这里使用并创建一些IPrintReport界面并MEF根据我的PrintReport方法的目录中的哪个程序集来管理应该打印哪个报告会很好。这是一个很好的使用场景,MEF还是有更好或更简单的方法来处理这个问题?

4

1 回答 1

0

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

  • 我是否需要在不重新编译您的主应用程序的情况下添加其他报告格式?

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

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

于 2012-10-18T15:17:55.330 回答