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) ページに固有にすることができるのでしょうか?