0

Unity を使用してコンテキストを注入し、次のライフタイム マネージャーを使用しています...

public class HttpContextLifetimeManager<T> : LifetimeManager, IDisposable
{
    #region IDisposable Members

    public void Dispose()
    {
        RemoveValue();
    }

    #endregion

    public override object GetValue()
    {
        object value = HttpContext.Current.Items[typeof (T).AssemblyQualifiedName];

        return value;
    }

    public override void RemoveValue()
    {
        HttpContext.Current.Items.Remove(typeof (T).AssemblyQualifiedName);
    }

    public override void SetValue(object newValue)
    {
        HttpContext.Current.Items[typeof (T).AssemblyQualifiedName]
            = newValue;
    }
}
  • ページ 1 への最初の要求: 値を表示します。
  • ページ 2 への最初の Web 要求: 値を更新します。
  • ページ 1 への 2 番目の Web 要求: 古い値を表示します。
  • 2 ページ目への 2 番目の Web 要求: 新しい値を表示します。

ページ 1 に新しい値を表示するには、VS 開発サーバーを再起動する必要があります。

では、どのようにしてコンテキストを a) ページ リクエスト間で存続させ、b) ページに固有にすることができるのでしょうか?

4

1 に答える 1

0

これはEFとは何の関係もありませんでした。生成されたUIはエンティティと同期しておらず、エンティティはUIで報告されていない検証エラーをスローしていました。スキャフォールディングテンプレートが、モデルレベルのエラーだけを表示しない検証サマリーを生成していたとしたら、それは役に立ちました。

于 2012-04-03T16:16:52.623 に答える