3

私は自分自身を継承し、そこApp.ControllerからMvc.Controllerすべてのコントローラーを継承しています。インターフェイスを利用するプロバイダーを作成し、それを として実装しましMyServiceた。コンストラクターは、whichのServerプロパティを取得します。Mvc.ControllerHttpServerUtilityBase

ただし、のコンストラクターでインスタンス化MyServiceします。App.Controller問題はServer、 Controller のプロパティがnullを構築するときMyServiceです。私はpublic Controller () : base() { }ベースを構築するために使用しました。ただし、Server残りnullます。

できれば避けたいWeb.HttpContext.Current.Server

この問題の回避策はありますか?

編集:まあ、私は tvanfosson の提案を実装しましたが、私のアプリMyServiceがプロパティgetメソッドで構築するときServerは、まだ null です。

編集 2:気にしないでください、私は間抜けでした。私は同様に別のものControllerを使用していましServerたが、それを変更しませんでした。ケースを閉じました。

4

5 に答える 5

0

なぜサーバー参照が必要なのですか?url / htmlエンコーディングのようなことをしていますか?その場合は、代わりにHttpUtilityを使用して、コンテキスト参照を完全に削除できます。

于 2009-03-11T02:30:01.240 に答える
0

これは非常に古い質問ですが、主題はまだ関連しています。したがって、2009 年には利用できなかった可能性がある 2017 年の 1 つのヒント:

ControllerコンストラクターServerが nullであることは事実です。OnActionExecutingただし、イベントを使用できます。

protected override void OnActionExecuting(ActionExecutingContext filterContext) 
{
    base.OnActionExecuting(filterContext);

    CurrentServer = Server; // CurrentServer is some instance variable I need later.
} 

これは私にとってはうまくいきます。

于 2017-04-24T09:27:17.197 に答える