我想举nancyfx与structuremap引导程序 https://github.com/NancyFx/Nancy.Bootstrappers.StructureMapstructuremap南希引导程序
这里是我的设置:
protected override void ConfigureApplicationContainer(IContainer container)
{
container.Configure(x =>
{
x.ForSingletonOf<IRazorConfiguration>()
.Use<DefaultRazorConfiguration>();
x.ForSingletonOf<ISessionContainer>().Use<SessionContainer>();
x.For<IRepository>().LifecycleIs(new HttpContextLifecycle()).Use<Repository>();
x.Scan(scanner=>
{
scanner.TheCallingAssembly();
scanner.AddAllTypesOf<IRepository>();
});
});
base.ConfigureApplicationContainer(container);
}
public interface IRepository
{
void Save();
}
public class Repository:IRepository
{
ISessionContainer _session;
public Repository(ISessionContainer container)
{
_session = container;
}
public void Save()
{
}
}
当我使用var repo = ObjectFactory.GetInstance<IRepository>();
,我得到这个异常:
StructureMap Exception Code: 202
No Default Instance defined for PluginFamily Infrastructure.IRepository, Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
你在哪里试图获得对'IRepository'的引用? NancyFX很少需要使用ObjectFactory.GetInstance()。你会使用'IRepository'来更新代码/调用堆栈的样本吗? (如果可以的话,从NancyModule开始) –
codeprogression