[英]How can i read and display info from multiple text files in 1 message box C#?
[英]How can I create a Windows App(C#) that has where I can display all the exceptions in various objects in a message box
我正在嘗試在C#中使用MVC。 因此,表單控制器使用身份驗證類實例。 我正在處理身份驗證類中的無效憑據。 但是我無法在消息框中顯示該消息,因為它不在表單控制器類實例中。 請幫忙
您不能簡單地在身份驗證類中拋出異常,並讓您的主表單處理該異常嗎?
// main form
try
{
User _loggedOnUser = Authenticate.GetLoggedOnUser();
}
catch (AuthenticationException ex)
{
MessageBox.Show(this, ex.Message, "Unable to authenticate user");
}
// Authenticate class
// ... do something
if (something == true)
throw new AuthenticationException("User account has been disabled");
或者,如果異常不合適,則使用返回值:
// main form
User _loggedOnUser = Authenticate.GetLoggedOnUser();
if (_loggedOnUser == null)
MessageBox.Show(this, "Unable to authenticate the user");
因此,您具有身份驗證類,但是如果身份驗證失敗,您將無法訪問任何錯誤消息? 在這種情況下,您將必須修改此類以顯示錯誤消息-您可以添加一個屬性,該屬性返回上一個身份驗證錯誤:
public bool Authenticate(...) { }
public string LastAuthenticationError { get; }
或者,您可以將一個out參數添加到Authenticate方法中:
public bool TryAuthenticate(..., out string errorMessage) { ... }
如果出於某種原因您無法修改此類,那么您真正能做的就是顯示一條通用的“身份驗證失敗”消息。
我可以解釋這個問題的唯一其他方法是,您不能從控制器內部訪問MessageBox類。 在這種情況下,由於MessageBox.Show是靜態的,因此只要身份驗證失敗就可以調用它:
public void Authenticate(...)
{
...
if(! authenticator.Authenticate(...))
{
System.Windows.Forms.MessageBox.Show(errorMessage);
}
}
但是,更好的方法是在視圖上添加“ ShowError”方法並從控制器調用該方法,以免將控制器耦合到視圖庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.