I am new to StructureMap. I have downloaded and am using version 2.6.1.0. I keep getting the below error:
StructureMap Exception Code: 202 No Default Instance defined for PluginFamily Company.ProjectCore.Core.IConfiguration, Company.ProjectCore, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
My Global.asax.cs looks like:
protected void Application_Start(object sender, EventArgs e)
{
var container = new Container(x =>
{
x.For<ICache>().Use<Cache>();
x.For<IEmailService>().Use<EmailService>();
x.For<IUserSession>().Use<UserSession>();
x.For<IRedirector>().Use<Redirector>();
x.For<INavigation>().Use<Navigation>();
});
container.AssertConfigurationIsValid();
}
I changed from ObjectFactory.Initialize to "new Container" to debug. When stepping through the AssertConfigurationIsValid() method, Cache works but EmailService fails at the GetInstance method in the following line:
[Pluggable("Default")]
public class EmailService : IEmailService
private readonly IConfiguration _configuration;
public EmailService()
{
_configuration = ObjectFactory.GetInstance<IConfiguration>();
}
If I remove IEmailService, the same 202 error is thrown at IUserSession.
Should I be adding something else in Application_Start or in my class files?
Thanks in advance...
This problem was fixed by replacing ObjectFactory.Initialize
with ObjectFactory.Configure
and adding the assemblies in my project:
ObjectFactory.Configure(x =>
{
x.Scan(scan =>
{
scan.LookForRegistries();
scan.Assembly("MyAssembly");
scan.Assembly("MyAssembly");
});
});