Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

StructureMap Exception Code: 202 No Default Instance defined for PluginFamily

Tags:

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...

like image 202
Peter Avatar asked May 26 '10 06:05

Peter


1 Answers

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");     }); }); 
like image 51
Peter Avatar answered Sep 17 '22 14:09

Peter