NuGet Unity.MVC4 パッケージhttp://nuget.org/packages/Unity.Mvc4/をインストールし、Unity.MVC3 パッケージを使用している場合と同じように接続しました。
依存関係は正しく解決されていますが、HierarchicalLifetimeManager を使用すると、オブジェクトの Dispose() メソッドがリクエストの最後に呼び出されません。
Unity.MVC3 と Unity.MVC4 を使用して、両方のプロジェクトでまったく同じ Bootstrapper.cs コードを使用して、実際に単純なプロジェクトをセットアップしました。MVC3 バージョンでは、Dispose() が呼び出されます。MVC4 バージョンでは、そうではありません。
私は自分のタイプをそのように登録しています
container.RegisterType<ITest, Test>(new HierarchicalLifetimeManager());
非常に単純な Test クラスで
public interface ITest
{
void Foo();
}
public class Test : IDisposable, ITest
{
public Test()
{
}
public void Foo()
{
}
public void Dispose()
{
}
}
間違ったことはしていないと思いますが、Unity.MVC4 パッケージにバグがあるようです。
誰かがそのパッケージをうまく使っているなら、どうやってそれを動かしたのか知りたい.