我对Class Libraries
编程很陌生,我认为我的问题有点复杂。
我正在使用自己的异常记录器。这个异常记录器具有static
例程和函数,因此我不必在其他每个类中声明它。 (这是一个好主意吗?:/)每当出现问题时,在异常记录器类中调用例程。此例程根据传递给它的数字确定错误消息的内容。
我的目标如下:
异常记录器应该在GUI中触发事件。然后,GUI中的事件会显示一个自定义消息框,其中包含错误消息。我知道用WithEvents
在GUI中声明异常记录器的可能性,但是没有在异常记录器类中保持静态的目的。
编辑1:我正在寻找一种方法在同一解决方案中从ExceptionLogger
中的Class Library
类触发GUI项目中的事件,而不在我的每个类中声明Class ExceptionLogger GUI项目。
编辑2:我举个例子。我有一个名为Class Library
的{{1}}。此类库包含名为Base
的{{1}}。此类依次为Class
ExceptionLogger
。
所以我在我的主Static Routine
中将Log
命名为.dll
,名为Reference
。 GUI有Project
GUI
和2 Form
名为MainWindow
和Classes
。
我想要的是,例如,Customer类遇到Product
(使用Customer
)和Catch部分Error
。 Try...Catch
中的Base.Log(1)
例程将查找错误消息必须是什么,并将在显示Log
的GUI ExceptionLogger
中触发事件。
真正的问题是,如何将此活动从MainWindow
发送到User Made MessageBox
?
编辑3:编辑2 中的Log
更像是MainWindow
,它覆盖了User Made MessageBox
,而不是打开的MessageBox窗口。
答案 0 :(得分:0)
我自己找到了解决方案。欢迎任何评论。已经有人评论或发表了答案。
这是我正在寻找的一个例子,它正在发挥作用。
这是我的DLL(名称空间Base):
public class ExceptionHandler
{
public static event EventHandler ShowErrorMessage;
public static void test(EventArgs e)
{
ShowErrorMessage("me", e);
}
}
这是我MainWindow
中的代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Base.ExceptionHandler.ShowErrorMessage += ExceptionHandler_ShowErrorMessage;
}
void ExceptionHandler_ShowErrorMessage(object sender, EventArgs e)
{
MessageBox.Show((string)sender);
}
private void Form1_Load(object sender, EventArgs e)
{
Base.ExceptionHandler.test(new EventArgs());
}
}