0

Global.asax ファイルには、次のコードがあります。

config.DependencyResolver = new IoCContainer(unity);

IOCContainer では、「名前空間が見つかりません」と表示されています。ここに含めるべき名前空間。既に Microsoft.Practices.Unity を含めました。

4

4 に答える 4

0

Nuget パッケージUnity.Mvc3をインストールしてから、次のコードを使用できます。

var container = new UnityContainer();
container.RegisterType<IFoo, Foo>();

DependencyResolver.SetResolver(new UnityDependencyResolver(container));
于 2012-08-22T13:10:24.900 に答える
0

次のクラスがありません。これも見つけるのに時間がかかりました。以下
のコード参照を見つけました

class ScopeContainer : IDependencyScope
{
    protected IUnityContainer container;

    public ScopeContainer(IUnityContainer container)
    {
        if (container == null)
        {
            throw new ArgumentNullException("container");
        }
        this.container = container;
    }

    public object GetService(Type serviceType)
    {
        if (container.IsRegistered(serviceType))
        {
            return container.Resolve(serviceType);
        }
        else
        {
            return null;
        }
    }

    public IEnumerable<object> GetServices(Type serviceType)
    {
        if (container.IsRegistered(serviceType))
        {
            return container.ResolveAll(serviceType);
        }
        else
        {
            return new List<object>();
        }
    }

    public void Dispose()
    {
        container.Dispose();
    }
}

class IoCContainer : ScopeContainer, IDependencyResolver
{
    public IoCContainer(IUnityContainer container)
        : base(container)
    {
    }

    public IDependencyScope BeginScope()
    {
        var child = container.CreateChildContainer();
        return new ScopeContainer(child);
    }
}
于 2012-09-01T21:09:05.103 に答える
0

どのバージョンの EntLib を使用していますか? 4.1 までは、IoCContainer ではなく UnityContainer がありました。

編集:あなたが渡しているユニティオブジェクトは何ですか? いくつかのコードを投稿する必要がある場合があります。それまでの間、ここにあなたを助けることができるチュートリアルがあります.

于 2012-08-22T12:18:06.563 に答える
0

「名前空間が見つかりません」?

ファイルの一番上にある「using」ディレクティブを見て、それらのいずれかが赤い色で線引きされていないかどうかを確認してください。多分あなたはいくつかのタイプミスをしていますか?または、一部のライブラリへの「参照を追加」するのを忘れたのでしょうか?

于 2012-08-22T12:19:35.957 に答える