Code Sherpa Code Sherpa - 12 days ago 4
ASP.NET (C#) Question

StructureMap Exception Code: 202 No Default Instance defined for PluginFamily

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

Answer

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");
    });
});
Comments