1

問題:

私はMVC4とWebAPIを使用しています。Unity.WebAPIパッケージをインストールしましたが、スタックします。

bootstrapper.csのInitialise()に何を登録する必要があるのか​​わかりませんか?インターフェイスとクラスまたは私のコントローラー?

using System.Web.Http;
using Microsoft.Practices.Unity;
using unitywapi4.Models;

namespace unitywapi4
{
    public static class Bootstrapper
    {
        public static void Initialise()
        {
            var container = BuildUnityContainer();

            GlobalConfiguration.Configuration.DependencyResolver = new Unity.WebApi.UnityDependencyResolver(container);
        }

        private static IUnityContainer BuildUnityContainer()
        {
            var container = new UnityContainer();

            // register all your components with the container here
            // e.g. container.RegisterType<ITestService, TestService>();       

            container.RegisterType<IProductRepository, Product>();

            return container;
        }
    }
}

エラー:

ジェネリック型またはメソッド'Microsoft.Practices.Unity.UnityContainerExtensions.RegisterType(Microsoft.Practices.Unity.IUnityContainer、params Microsoft.Practices.Unity.InjectionMember [])'。**で型パラメーター'TTo'として使用することはできません。

'unitywapi4.Models.Product'から'unitywapi4.Models.IProductRepository'への暗黙の参照変換はありません。

4

1 に答える 1

1

どうやら...

型のマッピングは、指定された同じインターフェイスを実装するか、指定された同じ基本クラスから継承するさまざまなオブジェクトのインスタンスを取得する場合に役立ちます。マッピングのターゲット型は、ソースの基本型またはインターフェイスから継承または実装する必要があります。コンテナー メソッドのジェネリック オーバーロードを使用して、型登録の既定のマッピングと名前付きマッピングの両方を生成できます。

http://msdn.microsoft.com/en-us/library/ff660923%28v=PandP.20%29.aspx#registertype_simple

于 2012-07-16T06:32:09.223 に答える