2012-10-04 76 views
0

我有一個應用程序爲最終用戶生成報告。這些是DevExpress XtraReports。一個用戶可能需要某種格式的某些字段的報告,而另一個用戶可能需要相同的字段或更多不同的格式。而不是做類似的:使用MEF生成/打印自定義報告?

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

我認爲這將是很好的用在這裏MEF,並創建一些IPrintReport接口,並具有MEF管理該報告應取決於哪個組件在我PrintReport方法目錄打印。這是使用MEF的好方案,還是有更好或更簡單的方法來處理?

回答

0

我認爲這就是MEF可以用來解決您的問題的情況,但有一個問題,我都會問自己第一:

  • 我需要添加額外的報告格式,無需重新編譯主應用?

如果不是,我認爲MEF是這種情況的矯枉過正。我使用MEF的主要好處是我的應用程序模塊可以獨立於主應用程序開發。我不需要重新發布我的整個應用程序來修復它的某個組件中的一個小錯誤。我可以簡單地將我的新的.dll放在一個文件夾中,我的應用程序將開始使用它。

如果您對上述問題回答「否」,我不會使用MEF。相反,我會創建你提到的IPringReport界面。實現此接口的所有類都可以列在您的應用程序設置中,用戶可以選擇其所需的格式。如果你的用戶不想處理選擇格式,你可以簡單地有一個設置文件來爲它們設置它。