我写一个dll库(例如用于检查用户的登录信息),我想弹出一个确认对话框或在这个过程中信息的对话框,例如
"Are you sure you want to continue? (Yes/No/Cancel)"
由于某些原因。 目前我需要这个Winforms中的应用程序,我想也使用相同的dll对我的其他web表单应用程序。 任何人都可以指导如何实现的呢? 需要较少的说,我不想引用System.Windows.Forms
或System.Web
。 任何一个可以给我一些指点? 我使用.NET 4.0
我不想对事件的发布/订阅,因为我不是很熟悉的驾驶室结构。
编辑
我有一个在应用程序运行时创建数据库的DLL。 所以,我的DLL一般检查,如果数据库已经存在,并且是高达日期或不是,如果是则停止。 但是,如果它不存在或无法高达日期,那么我要问用户,如果他想现在或以后进行更新。 如果用户现在说,更新和事后说继续申请。 这只是一个例子,并在此的任何相关信息是值得欢迎的。
谢谢。
你真的不应该。 这并不在图书馆属于,而应在使用这个库,而不是应用程序来完成。
当一个WinForms应用程序可以通过显示一个解决这个问题MessageBox
,一个Web应用程序可能(因为POST通常显示的意图修改资源),而一个成功的POST请求后执行请求。
例如当你的库用于登录,简单地抛出一个AuthenticationException
,所以客户端应用程序(无论是的WinForms,网络,或其他)可以赶上并显示相应的信息。
至于你的编辑:
我有一个在应用程序运行时创建数据库的DLL ...
为什么不公开两个方法,如IsDatabaseUpToDate()
和UpdateDatabase()
然后在客户端,你可以调用第一个方法。 如果返回false,你问用户他们是否要更新数据库(有一个消息,一个HTML表单,一个JavaScript警告,简单的是按钮或闪烁的瓷砖吧)。 如果是这样,你叫UpdateDatabase()
方法,你准备好去。
要做到这一点,你需要右键单击该项目并选择“添加引用”,然后选择“.NET”选项卡,然后单击‘System.Windows.Forms的’。 那么这应该将.dll里面工作:
System.Windows.Forms.MessageBox.Show("Hello World!");
当然,这是原来的海报是一个坏主意(如覆盖CodeCaster)。