C# MVP模式、接口、错误消息在webform中显示
我正在从事一个webform项目,我想在其中实现MVP模式。 我已经阅读了一些基于MVP的文章和项目。我觉得很好 在大多数地方,如果有任何需要显示错误消息的地方,它已经被制作好了 视图界面中的方法。为了清楚起见,我在这里举一个例子C# MVP模式、接口、错误消息在webform中显示,c#,asp.net,webforms,mvp,C#,Asp.net,Webforms,Mvp,我正在从事一个webform项目,我想在其中实现MVP模式。 我已经阅读了一些基于MVP的文章和项目。我觉得很好 在大多数地方,如果有任何需要显示错误消息的地方,它已经被制作好了 视图界面中的方法。为了清楚起见,我在这里举一个例子 public interface IAdminSettingsView { string Name { get; set; } string Password { get; set; } string Email { get; set; }
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在最低级别(例如实用程序DLL),我将类放入错误处理。其中之一是表单可以实现的接口。启动时,软件将实现接口的表单注册到低级DLL。此表单可以在最高级别(EXE)上定义
当软件的任何级别出现错误时,可以对错误框架进行适当的调用,如果表单实现了显示错误界面,那么表单将在该点显示
顺便说一句,对于状态和进度消息,我也会这样做。有一个IStatusDisplay界面和一个IProgressDisplay界面。EXE注册实现这些接口的窗体或类首先,在iShoErrorMessage中,定义显示错误消息所需的属性/方法 比如:
interface IShowErrorMessage
{
void Show(string errorMessage);
}
接下来,您的视图将实现该接口。
视图的Show(string)实现将设置一个文本
演示者将保持不变
创建一些单元测试,你就很好了
希望能有帮助