2009-11-18 42 views
0

我正在開發一個webform項目,我想實現MVP模式。 我已經經歷了幾篇基於MVP的文章和項目。對我來說似乎很好。MVP模式,接口,網絡表單中的錯誤消息顯示

在絕大多數地方,如果有任何需要顯示錯誤信息,在視圖界面中已經制作了一個方法 。爲了清楚起見,我在這裏舉一個例子。

public interface IAdminSettingsView 
{ 
    string Name { get; set; } 
    string Password { get; set; } 
    string Email { get; set; } 
    void ShowErrorMessage(string errorMessage); 
} 

這裏是我的控制實現IAdminSettingsView

public partial class AdminSettingsEdit : BaseControl, IAdminSettingsView 
{ 

    private AdminSettingsPresenter _adminSettingsPresenter; 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 

    protected override void OnInit(EventArgs e) 
    { 
     base.OnInit(e); 
     _adminSettingsPresenter = new AdminSettingsPresenter(this); 

    } 


    protected void BtnSave_Click(object sender, EventArgs e) 
    { 
     _adminSettingsPresenter.Save(); 
    } 

    #region Implementation of IAdminSettingsView 

    public string Name 
    { 
     get { return AdminName.Text; } 
     set { AdminName.Text = value; } 
    } 

    public string Password 
    { 
     get { return AdminPassword.Text; } 
     set { AdminPassword.Text = value; } 
    } 

    public string Email 
    { 
     get { return AdminEmail.Text; } 
     set { AdminEmail.Text = value; } 
    } 


    public void ShowErrorMessage(string errorMessage) 
    { 
     lblErrorMessage.Text = errorMessage; 
    } 

    #endregion 
} 

這裏是我的演講

public class AdminSettingsPresenter 
{ 
    public AdminSettingsPresenter(IAdminSettingsView view) 
    { 
     _view = view; 

    } 

    private IAdminSettingsView _view; 
    public void Save() 
    { 

     try 
     { 
      //Trying Save Data Here 

     } 
     catch (Exception exception) 
     { 
      _view.ShowErrorMessage("Couldnt Save Data"); 

     } 

    } 

} 

我的問題是,我怎麼能單獨錯誤相關的消息到不同的接口,然後作出他們之間的溝通。例如,如果我有一個接口

interface IShowErrorMessage 
{ 
    //somemethod here 
} 

如何使用這個接口與我的主要IAdminSettingsView接口工作。

您的幫助將不勝感激。如果這個問題有更好的解決方案,我很樂意聽到。

問候 成員Parminder

回答

0

在最低級別(例如公用事業DLL)我把類的錯誤處理。其中之一是表單可以實現的接口。啓動時,軟件註冊實現與低級別DLL的接口的表單。這種形式可以在最高級別(EXE)中定義。

當在軟件的任何級別發生錯誤時,可以對錯誤框架進行適當的調用,並且如果窗體實現了顯示錯誤界面,則表單將在該點顯示。

另外我還爲狀態和進度信息做了這個。有一個IStatusDisplay接口和一個IProgressDisplay接口。 EXE註冊實現這些接口的窗體或類

0

首先,在IShowErrorMessage中,定義顯示錯誤消息所需的屬性/方法。

喜歡的東西:

interface IShowErrorMessage 
{ 
    void Show(string errorMessage); 
} 

接下來,您的觀點將實現該接口。 顯示(字符串)的視圖的實現將設置一個文字。

主講人將保持不變。

創建一些單元測試,你很好!

希望它有幫助。