0

私はこれを多くのMVCコントローラーに持っています:

private JavaScriptSerializer _javaScriptSerializer;
        protected JavaScriptSerializer javaScriptSerializer
        {
            get
            {
                if (_javaScriptSerializer == null)
                {
                    _javaScriptSerializer = new JavaScriptSerializer();
                }

                return _javaScriptSerializer;
            }
            set
            {
                _javaScriptSerializer = value;
            }
        }

私はそれを解決しようとしました:

<alias alias="JavaScriptSerializer" type="System.Web.Script.Serialization.JavaScriptSerializer, System.Web.Script.Serialization" />

<register type="JavaScriptSerializer" mapTo="JavaScriptSerializer" />

しかし、アプリケーションを実行するたびに、依存関係を解決できません。アプリケーション全体でこれを一度初期化して、すべてのコントローラーに対して初期化する必要がある方法はありますか?

4

1 に答える 1

1

実際には、何も登録する必要はありません。JavaScriptSerializer はゼロ引数のコンストラクターを持つ具象クラスであるため、Unity はそれを新しく作成するだけで、構成は必要ありません。

では、なぜ以前は機能しなかったのでしょうか。構成するときは、エイリアスで完全なアセンブリ名を使用する必要があります。そうではありませんでした - バージョン、公開鍵トークン、およびカルチャ フィールドを省略しました。そのため、CLR は要求したアセンブリを見つけることができず、解決に失敗しました。

エイリアスと登録を構成から削除します。

于 2012-12-18T04:16:30.337 に答える