2011-10-27 5 views
1

私のアセンブリ(サービス)は、WinFormsコンテキストで使用するために開発されました。 どこかに問題がある場合、私のdllはエラーメッセージとそれに対応するメッセージを表示します。実行時のコンテキストを理解する方法:WinForms、WinService、またはASP.NET?

今、私はそれを使用するつもりです。 コードは非常に古くて汚いので、パターンアプローチなどを使用したくないのです。 とにかく、私はどのようなコンテキストがあるかを判断するには100%作業方法が必要です。

  1. 私は私が私が正しく理解していれば、あなたが維持するために悪夢を作成するためのパス上にあるウェブ
+0

可能な重複:http://stackoverflow.com/questions/5464979/determine-whether-running-in-asp-net-or-winforms-console-without-system-web – Dyppl

+0

実際にWebにあるかどうかを判断するコンテキスト: if(System.Web.HttpContext.Current!= null) //ここに – EvgeniyK

答えて

4

だWINSERVICEに

  • てるのWinForm
  • です。

    あなたのアセンブリでは、誰がそれを消費しているのかについて知るべきではありません。明日、あなたのアセンブリが使用される別のコンテキストがあると想像してください。あなたのコードを再度変更し、最初には存在しない依存関係を追加する必要があります。

    IMHO、OnErrorイベントを作成します.OnErrorイベントは、アセンブリのコンシューマが指定した適切なデリゲートを呼び出すか、少なくともSystem.Console.Outと同様の操作を行います。つまり、デフォルトですべてのエラーをログに記録するために使用するTextWriter型のプロパティを作成しますが、アセンブリのコンシューマはこのプロパティのセッターを持ち、ログを独自のTextWriterにリダイレクトし、適切な。

    それは意味がありますか?

  • +0

    正確に... +1。 – bryanmac

    +0

    はい、あなたは正しいです、それは本当の意味でラ・ラ・ラー ですが、私はすべて今必要なのはすぐれたストレートソリューションです – EvgeniyK

    +0

    誰かが認識する方法を知っていますか、私はWinServiceですか? thx – EvgeniyK

    関連する問題