初期化:のStructureMap例外202 Noデフォルトのインスタンスが定義された(バージョン2.61)コンテナの
public override void Initialize()
{
ObjectFactory.Initialize(x =>
{
x.Scan(s =>
{
s.TheCallingAssembly();
s.AssemblyContainingType<IRegistar>();
s.WithDefaultConventions();
});
});
}
Global.asax.xc
var dependencyContainer = new DependencyContainer();
dependencyContainer.Initialize();
ControllerBuilder.Current.SetControllerFactory(new DependencyControllerFactory());
ゲットインスタンス:
public class DependencyControllerFactory : DefaultControllerFactory
{
protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
{
if (controllerType == null)
{
return base.GetControllerInstance(requestContext, controllerType);
}
try
{
return ObjectFactory.GetInstance(controllerType) as Controller;
}
catch (StructureMapException exception)
{
Debug.WriteLine(ObjectFactory.WhatDoIHave());
throw;
}
}
}
コントローラ
プライベートIBabyRepository _babyReposoitory; {
public BabyController(IBabyRepository babyRepository)
{
_babyReposoitory = babyRepository;
}
クラスDI/Iocをしようとして
public class BabyRepository : IBabyRepository, IRepository<Baby>, IRegistar
{
Just a Default constructor here();
code...
}
エラー:
のStructureMap例外コード:PluginFamily Domain.Repository.IBabyRepositoryために定義された202 いいえデフォルトインスタンスません、ドメイン、バージョン= 1.0.0.0、文化=ニュートラル、PublicKeyToken = null
Me
私は間違っていますか?
はIBabyRepositoryに登録さWhatDoIHave出力ショーBabyRepositoryしていますか? –
また、インスタンス化しようとしているコントローラのコンストラクタを表示します。 –
WhatDoIHaveはStrcutMapオブジェクトコンテナの一部です。どのインタフェースがどのコンクリートにマップされているかを示します。 – Neurath