Dragn1821
unread,Jun 29, 2010, 10:30:20 AM6/29/10Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to structuremap-users
Hello,
I'm having some problems using C# with StructureMap 2.6.1. I've used
this version of StructureMap with VB and this is the first time I'm
trying it with C#.
The exception is being caused when the data context is trying to
load. Everything works fine, when I remove it as a dependency.
This worked great in VB, and I've found examples that look like I'm
setting this up correctly, but I'm still not able to make it work.
Here is the exception message and stack trace. Code is listed
below...
Anyone see anything I'm doing wrong?
Thanks!
Exception:
========
{"StructureMap Exception Code: 202\nNo Default Instance defined for
PluginFamily Tiara.Data.Data_Contexts.TiaraDataContext, Tiara.Data,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"}
Stack Trace:
=========
at StructureMap.BuildSession.<.ctor>b__0(Type t)
at StructureMap.Util.Cache`2.get_Item(KEY key)
at StructureMap.BuildSession.CreateInstance(Type pluginType)
at StructureMap.Pipeline.DefaultInstance.build(Type pluginType,
BuildSession session)
at StructureMap.Pipeline.Instance.createRawObject(Type pluginType,
BuildSession session)
at StructureMap.Pipeline.Instance.Build(Type pluginType,
BuildSession session)
at StructureMap.Pipeline.ConstructorInstance.Get(String
propertyName, Type pluginType, BuildSession session)
at StructureMap.Pipeline.ConstructorInstance.Get[T](String
propertyName, BuildSession session)
at StructureMap.Pipeline.Arguments.Get[T](String propertyName)
at lambda_method(Closure , IArguments )
at
StructureMap.Construction.BuilderCompiler.FuncCompiler`1.<>c__DisplayClass2.<CreateBuilder>b__0(IArguments
args)
at
StructureMap.Construction.InstanceBuilder.BuildInstance(IArguments
args)
at StructureMap.Pipeline.ConstructorInstance.Build(Type pluginType,
BuildSession session, IInstanceBuilder builder)
at StructureMap.Pipeline.ConstructorInstance.build(Type pluginType,
BuildSession session)
at StructureMap.Pipeline.Instance.createRawObject(Type pluginType,
BuildSession session)
at StructureMap.Pipeline.Instance.Build(Type pluginType,
BuildSession session)
at StructureMap.Pipeline.ObjectBuilder.ConstructNew(Type
pluginType, Instance instance, BuildSession session)
at StructureMap.Pipeline.ObjectBuilder.Resolve(Type pluginType,
Instance instance, BuildSession session)
at StructureMap.BuildSession.CreateInstance(Type pluginType,
Instance instance)
at StructureMap.BuildSession.<>c__DisplayClass3.<.ctor>b__1()
at StructureMap.BuildSession.CreateInstance(Type pluginType)
at StructureMap.Pipeline.DefaultInstance.build(Type pluginType,
BuildSession session)
at StructureMap.Pipeline.Instance.createRawObject(Type pluginType,
BuildSession session)
at StructureMap.Pipeline.Instance.Build(Type pluginType,
BuildSession session)
at StructureMap.Pipeline.ConstructorInstance.Get(String
propertyName, Type pluginType, BuildSession session)
at StructureMap.Pipeline.ConstructorInstance.Get[T](String
propertyName, BuildSession session)
at StructureMap.Pipeline.Arguments.Get[T](String propertyName)
at lambda_method(Closure , IArguments )
at
StructureMap.Construction.BuilderCompiler.FuncCompiler`1.<>c__DisplayClass2.<CreateBuilder>b__0(IArguments
args)
at
StructureMap.Construction.InstanceBuilder.BuildInstance(IArguments
args)
at StructureMap.Pipeline.ConstructorInstance.Build(Type pluginType,
BuildSession session, IInstanceBuilder builder)
at StructureMap.Pipeline.ConstructorInstance.build(Type pluginType,
BuildSession session)
at StructureMap.Pipeline.Instance.createRawObject(Type pluginType,
BuildSession session)
at StructureMap.Pipeline.Instance.Build(Type pluginType,
BuildSession session)
at StructureMap.Pipeline.ObjectBuilder.ConstructNew(Type
pluginType, Instance instance, BuildSession session)
at StructureMap.Pipeline.ObjectBuilder.Resolve(Type pluginType,
Instance instance, BuildSession session)
at StructureMap.BuildSession.CreateInstance(Type pluginType,
Instance instance)
at StructureMap.BuildSession.<>c__DisplayClass3.<.ctor>b__1()
at StructureMap.BuildSession.CreateInstance(Type pluginType)
at StructureMap.Pipeline.DefaultInstance.build(Type pluginType,
BuildSession session)
at StructureMap.Pipeline.Instance.createRawObject(Type pluginType,
BuildSession session)
at StructureMap.Pipeline.Instance.Build(Type pluginType,
BuildSession session)
at StructureMap.Pipeline.ConstructorInstance.Get(String
propertyName, Type pluginType, BuildSession session)
at StructureMap.Pipeline.ConstructorInstance.Get[T](String
propertyName, BuildSession session)
at StructureMap.Pipeline.Arguments.Get[T](String propertyName)
at lambda_method(Closure , IArguments )
at
StructureMap.Construction.BuilderCompiler.FuncCompiler`1.<>c__DisplayClass2.<CreateBuilder>b__0(IArguments
args)
at
StructureMap.Construction.InstanceBuilder.BuildInstance(IArguments
args)
at StructureMap.Pipeline.ConstructorInstance.Build(Type pluginType,
BuildSession session, IInstanceBuilder builder)
at StructureMap.Pipeline.ConstructorInstance.build(Type pluginType,
BuildSession session)
at StructureMap.Pipeline.Instance.createRawObject(Type pluginType,
BuildSession session)
at StructureMap.Pipeline.Instance.Build(Type pluginType,
BuildSession session)
at StructureMap.Pipeline.ObjectBuilder.ConstructNew(Type
pluginType, Instance instance, BuildSession session)
at StructureMap.Pipeline.ObjectBuilder.Resolve(Type pluginType,
Instance instance, BuildSession session)
at StructureMap.BuildSession.CreateInstance(Type pluginType,
Instance instance)
at StructureMap.BuildSession.<>c__DisplayClass3.<.ctor>b__1()
at StructureMap.BuildSession.CreateInstance(Type pluginType)
at StructureMap.Container.GetInstance(Type pluginType)
at StructureMap.ObjectFactory.GetInstance(Type pluginType)
at
StructureMapControllerFactory.GetControllerInstance(RequestContext
requestContext, Type controllerType) in C:\Documents and Settings
\cjackson\My Documents\All Projects\Current Projects\Tiara.Net\Tiara
\StructureMap\StructureMapControllerFactory.cs:line 8
at
System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext
requestContext, String controllerName)
at System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase
httpContext, IController& controller, IControllerFactory& factory)
at System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase
httpContext, AsyncCallback callback, Object state)
at System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext
httpContext, AsyncCallback callback, Object state)
at
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext
context, AsyncCallback cb, Object extraData)
at
System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step,
Boolean& completedSynchronously)
StructureMapControllerFactory
======================
using System.Web.Mvc;
using StructureMap;
public class StructureMapControllerFactory : DefaultControllerFactory
{
protected override IController
GetControllerInstance(System.Web.Routing.RequestContext
requestContext, System.Type controllerType)
{
return ObjectFactory.GetInstance(controllerType) as
IController;
}
}
Bootstrapper
=========
using StructureMap;
public class BootStrapper
{
public static void ConfigureStructureMap()
{
ObjectFactory.Initialize(x =>
{
x.AddRegistry(new MainRegistry());
x.Scan(y =>
{
y.Assembly("Tiara");
y.WithDefaultConventions();
});
x.Scan(y =>
{
y.Assembly("Tiara.Data");
y.WithDefaultConventions();
});
x.Scan(y =>
{
y.Assembly("Tiara.Services");
y.WithDefaultConventions();
});
});
}
}
DataRegistry
=========
using StructureMap.Configuration.DSL;
using Tiara.Data.Data_Contexts;
using Tiara.Data;
public class DataRegistry : Registry
{
public DataRegistry()
{
//Data connections.
For<TiaraDataContext>().HybridHttpOrThreadLocalScoped().Use(()
=> new TiaraDataContext());
//Repositories.
For<IInvoiceRepository>().Use<InvoiceRepository>();
}
}