在dll库中显示消息框

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

"Are you sure you want to continue? (Yes/No/Cancel)"

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

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

编辑

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

谢谢。

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

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

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


至于你的编辑:

我有一个用于在应用程序的运行时创建数据库的DLL …

为什么不公开IsDatabaseUpToDate()UpdateDatabase()两个方法? 然后在客户端中,您可以调用第一个方法。 如果它返回false,则询问用户(无论是使用MessageBox,HTML表单,JavaScript警报,简单的Yes按钮还是闪烁的磁贴)是否要更新数据库。 如果是这样,您调用UpdateDatabase()方法就可以了。

要完成此操作,您需要右键单击项目并选择“添加引用”,然后选择“.NET”选项卡并单击“System.Windows.Forms”。 那么这应该在.dll中工作:

 System.Windows.Forms.MessageBox.Show("Hello World!"); 

当然这对于原始海报来说是个坏主意(由CodeCaster承担)。