我有一个为最终用户生成报告的应用程序。这些是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>
答案 0 :(得分:0)
我认为这是MEF
可以用来解决问题的情况,但我首先会问自己一个问题:
如果没有,我认为MEF
对于这种情况来说是过度的。我从使用MEF
看到的主要好处是我的应用程序的模块可以独立于主应用程序开发。我不需要重新发布我的整个应用程序来修复其中一个组件中的小错误。我可以简单地将我的新.dll放到一个文件夹中,我的应用程序将开始使用它。
如果您对上述问题的回答为“否”,我将不会使用MEF
。相反,我会创建你提到的IPringReport
接口。实现此接口的所有类都可以在您的应用程序设置中列出,用户可以在其中选择所需的格式。如果您的用户不想处理选择格式,您可以只设置一个设置文件来为其设置。