ホームページ > バックエンド開発 > C#.Net チュートリアル > .NET MyMVCフレームワークでアクションを実行するプロセスの詳細な説明

.NET MyMVCフレームワークでアクションを実行するプロセスの詳細な説明

Y2J
リリース: 2017-05-17 11:29:07
オリジナル
2554 人が閲覧しました

AjaxHandlerFactory の GetHandler メソッドで、最終的に ActionHandler が作成されます。これは HttpHandler であり、パイプラインの 15 番目のステップで呼び出されます (ブログ [Asp.net で独自のサービス フレームワークを作成する] のシーケンスを引用) 。

注: AjaxHandlerFactory の GetHandler メソッドはステップ 10 で呼び出されます。ステップ 12 ではセッションを準備しています (非インプロセス モード)。そのため、セッションの使用はステップ 12 の前に決定する必要があります。

すべてのアクション コードは ActionHandler で実行されます:

internal class ActionHandler : IHttpHandler{    internal InvokeInfo InvokeInfo;    public void ProcessRequest(HttpContext context)
    {        // 调用核心的工具类,执行Action        ActionExecutor.ExecuteAction(context, this.InvokeInfo);
    }
ログイン後にコピー

ExecuteAction の実装プロセスは次のとおりです:

internal static void ExecuteAction(HttpContext context, InvokeInfo vkInfo)
{    if( context == null )        throw new ArgumentNullException("context");    if( vkInfo == null )        throw new ArgumentNullException("vkInfo");    // 调用方法    object result = ExecuteActionInternal(context, vkInfo);    // 设置OutputCache    OutputCacheAttribute outputCache = vkInfo.GetOutputCacheSetting();    if( outputCache != null )
        outputCache.SetResponseCache(context);    // 处理方法的返回结果    IActionResult executeResult = result as IActionResult;    if( executeResult != null ) {
        executeResult.Ouput(context);
    }    else {        if( result != null ) {            // 普通类型结果            context.Response.ContentType = "text/plain";
            context.Response.Write(result.ToString());
        }
    }
}internal static object ExecuteActionInternal(HttpContext context, InvokeInfo info)
{    // 准备要传给调用方法的参数    object[] parameters = GetActionCallParameters(context, info.Action);    // 调用方法    if( info.Action.HasReturn )        return info.Action.MethodInfo.Invoke(info.Instance, parameters);    else {
        info.Action.MethodInfo.Invoke(info.Instance, parameters);        return null;
    }
}
ログイン後にコピー

SetResponseCache() を呼び出すタイミングについては前に述べましたよね? このタイミングは、まさにアクションの実行後です。 。
OutputCache を設定したら、戻り値を処理します。

前のコードには、別の重要な呼び出しがあります:

// 准备要传给调用方法的参数object[] parameters = GetActionCallParameters(context, info.Action);
ログイン後にコピー

[関連推奨事項]

1。特別な推奨事項: 「php Programmer Toolbox」V0.1 バージョンのダウンロード

2 。ビデオチュートリアル

3.

エントリーレベルの.NET MVCの例

4.

MyMVCボックスでアクションを見つけるプロセスの詳細な説明

5.

.NET MyMVCフレームワークが戻り値を処理します。チュートリアル

6. メソッドに値を割り当てる方法に関する

.NET MyMVCフレームワークのチュートリアル

以上が.NET MyMVCフレームワークでアクションを実行するプロセスの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート