私のサービス層(クラスライブラリ)から確認メールを送信したいと思います。これは、asp.net mvcコントローラまたはwcfサービスから起動できます。クラスライブラリから現在のWebホストとアプリケーションディレクトリを取得
サービスレイヤからURLを作成するにはどうすればよいですか?
私のサービス層(クラスライブラリ)から確認メールを送信したいと思います。これは、asp.net mvcコントローラまたはwcfサービスから起動できます。クラスライブラリから現在のWebホストとアプリケーションディレクトリを取得
サービスレイヤからURLを作成するにはどうすればよいですか?
サービス層は、それらのルールを簡単に変更することができ、特にので、URLはWebアプリケーションで構築されている方法の知識を持つべきではありません。また、これにより、サービスレイヤーがWebレイヤーに緊密に結合され、再利用性が低下します。明日、このサービス層をデスクトップアプリケーションで再利用したいのであればどうしますか?
IMHOはコントローラからサービス層に渡すべき情報です。
コード内のどこでもHttpContext.Current
にアクセスして、必要な状態をすべて取得することができます。しかし、文脈を自分自身のクラスライブラリに渡す方がはるかに望ましいです。
たとえば、ルートデータを取得する:
HttpContext.Current.Request.RequestContext.RouteData
ああ、いいえ、いいえ、 'HttpContext.Current'。 –
まさに!私は「しかしあなた自身があなたのクラスライブラリに文脈を渡す方がはるかに好ましい」と言いました。 – Aliostad
文脈がもはや利用できなくなったらどうしますか?たとえば、サービス層がバックグラウンドスレッドで電子メールを送信することを決定する場合があります。 HttpContextは、メインメソッドがサービスメソッドが終了するずっと前に終了している可能性があるため、このバックグラウンドスレッドにはもう存在しません。そして、なぜサービス層をHTTPのものと結びつけるのですか?これはもはや私のサービス層ではありません。 –
ありがとう、私はあなたがすぐに2つの質問に一度に答えたと思います。 Webプロジェクトからメッセージテンプレートを取得し、サービスレイヤーに送信します。 –