私はUnity Dependency Injectionを使用しており、問題が発生しています。私はインターフェイスとクラスを次のように登録しました。Unity - 現在のタイプはインタフェースであり、構築できません。型マッピングがありませんか?
container.RegisterType<IUserService, UserService>();
ここで、コンテナはIUnityContainerです。私のコントローラで
私はそうのようなIUserServiceパラメータに取るコンストラクタを設定している:このコントローラーのインデックスを対象としているページ上のリンクがヒットした場合
private readonly IUserService _service;
public DependencyController(IUserService service)
{
_service = service;
}
、私が取得するには、次エラー:
"現在のタイプConverge.Service.Interfaces.IUserServiceはインターフェイスであり、構築できません。タイプマッピングがありませんか?"私が何が欠けているかもわかりません。どんな助けも大変ありがとうございます。もっと情報が必要なら私に知らせてください。
ここUPDATE はUnityConfigクラスは少し検索した後、私は何が起こっているかを考え出し、他のプロジェクトを作成するので、
public class UnityConfig
{
private static readonly Lazy<IUnityContainer> Container = new Lazy<IUnityContainer>(() =>
{
var container = new UnityContainer();
RegisterTypes(container);
return container;
});
public static IUnityContainer GetConfiguredContainer()
{
return Container.Value;
}
private static void RegisterTypes(IUnityContainer container)
{
new ServiceInjection()
.Inject(container);
}
}
public class ServiceInjection
{
public void Inject(IUnityContainer container)
{
container.RegisterType<IUserService, UserService>();
}
}
コンポジションルート(コンテナをMVCに結び付けるスタートアップコード)のコードを表示してください。 – NightOwl888
本当に、 'Inject'メソッドが呼ばれていますか?あなたのコンテナ登録コードが実行されていないように見える – Backs
そう呼ばれている。それに足を踏み入れた。 –