c# - 在 dll 库中显示消息框

标签 c# .net dll message

我正在编写一个 dll 库(例如用于检查用户的登录详细信息)并且我想在此过程中弹出一个确认对话框或一个信息对话框,例如

“您确定要继续吗?(是/否/取消)”

出于某种原因。目前我需要这个用于 Winforms 中的应用程序,我也想为我的其他 webforms 应用程序使用相同的 dll。谁能指导如何实现它?不用说,我不想引用 System.Windows.FormsSystem.Web。任何人都可以给我一些指示吗?我正在使用 .net 4.0

我不想发布/订阅事件,因为我对 cab 架构不是很熟悉。

编辑

我有一个用于在应用程序运行时创建数据库的 dll。所以我的 dll 通常会检查数据库是否已经存在并且是否是最新的,如果是则停止。但如果它不存在或不是最新的,那么我想问用户他是想现在还是以后更新它。如果用户说现在,更新它并说之后继续申请。这只是一个示例,欢迎提供任何相关信息。

谢谢。

最佳答案

你真的不应该。这不属于库,但应该在使用该库的应用程序中完成。

在 WinForms 应用程序可能通过显示 MessageBox 来解决问题的情况下,Web 应用程序可能会在成功的 POST 后执行请求而不询问(因为 POST 通常显示修改资源的意图)。

例如,当您的库用于登录时,只需抛出一个 AuthenticationException,这样客户端应用程序(无论是 WinForms、Web 还是其他)就可以捕获并显示相应的消息。


至于您的编辑:

I have a dll for creating database at runtime of an application ...

为什么不公开两个方法,如 IsDatabaseUpToDate()UpdateDatabase()?然后在客户端,就可以调用第一个方法了。如果它返回 false,您将询问用户(使用 MessageBox、HTML 表单、JavaScript Alert、简单的"is"按钮或闪烁的磁贴)他们是否要更新数据库。如果是这样,您可以调用 UpdateDatabase() 方法,然后就可以开始了。

关于c# - 在 dll 库中显示消息框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10412374/

相关文章:

c# - 在 IIS7 中打开 Excel 2010 工作簿原因 "Exception from HRESULT: 0x800A03EC"

c# - 在字符串中查找重复内容?

c# - 使现有的 .NET Windows 应用程序具有 DPI 感知能力

c# - 如何在 MessageBox 上显示 FARPROC 内存地址

c# - 如何避免 C# while 和 do-while 循环中的代码重复?

c# - 您可以在中间件内部创建 transient DI 服务吗?

iphone - IOS 5 - webview 不显示从reportviewer control(.NET) 渲染的html

c# - 将 asp.net Mvc 从 3 降级到 2

c - DLL 的问题

c++ - 从 C++ 调用 Delphi DLL IStream 参数的问题