2009-11-18 49 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); 
} 

接下来,您的观点将实现该接口。 显示(字符串)的视图的实现将设置一个文字。

主讲人将保持不变。

创建一些单元测试,你很好!

希望它有帮助。