1

私はdllライブラリを作成しています(たとえば、ユーザーのログインの詳細を確認するため)。たとえば、プロセス中に確認ダイアログまたは情報ダイアログをポップアップしたい

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

何らかの理由で。現在、Winforms のアプリケーションにこれが必要であり、他の Webforms アプリケーションにも同じ dll を使用したいと考えています。誰もそれを達成する方法を導くことができますか? System.Windows.Formsまたはを参照したくないことは言うまでもありませんSystem.Web。誰でも私にいくつかの指針を与えることができますか? 私は.net 4.0を使用しています

私はタクシーのアーキテクチャにあまり詳しくないので、イベントの発行/購読はしたくありません。

編集

アプリケーションの実行時にデータベースを作成するための dll があります。したがって、私のdllは通常、データベースが既に存在し、最新であるかどうかをチェックし、そうであれば停止します。しかし、それが存在しないか最新でない場合は、ユーザーに今すぐ更新するか後で更新するかを尋ねます。ユーザーが今言う場合は、それを更新し、後でアプリケーションに進むと言います。これは単なる例であり、これに関する関連情報は大歓迎です。

ありがとう。

4

2 に答える 2

6

あなたは本当にすべきではありません。これはライブラリに属していませんが、代わりにこのライブラリを使用するアプリケーションで実行する必要があります。

WinForms アプリケーションが を表示することで解決する場合MessageBox、Web アプリケーションは、POST が成功した後に確認せずにリクエストを実行する可能性があります (POST は通常、リソースを変更する意図を示すため)。

たとえば、ライブラリがログインに使用されている場合は、単に をスローするだけでAuthenticationException、クライアント アプリケーション (WinForms、Web、またはその他のもの) がそれをキャッチして、適切なメッセージを表示できます。


あなたの編集に関して:

アプリケーションの実行時にデータベースを作成するための dll があります...

IsDatabaseUpToDate()とのような 2 つのメソッドを公開してみませんUpdateDatabase()か? 次に、クライアントで最初のメソッドを呼び出すことができます。false が返された場合は、データベースを更新するかどうか (メッセージ ボックス、HTML フォーム、JavaScript アラート、単純な [はい] ボタン、または点滅するタイルを使用して) ユーザーに尋ねます。その場合は、UpdateDatabase()メソッドを呼び出して準備完了です。

于 2012-05-02T11:02:44.757 に答える
0

これを行うには、プロジェクトを右クリックして [参照の追加] を選択し、[.NET] タブを選択して [System.Windows.Forms] をクリックします。次に、これは .dll 内で機能するはずです。

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

もちろん、これは元のポスター (CodeCaster がカバーしているように) にとっては悪い考えです。

于 2013-01-31T20:54:35.523 に答える