ich jsut bin mit den Grundlagen von StructureMap (IOC) in den Griff bekommen und ich versuche, die Demo von Brighter intergrate die hierIntergrating (ian Küfer) Brighter mit StructureMap
https://iancooper.github.io/Paramore/QuickStart.html
Mit Structuremap gefunden werden kann innerhalb eines MVC-Projekts.
Das Problem das ich habe, arbeitet heraus, was in der Structuremap Objekt Fabrik auf Build zu passieren, es kehrt
ich derzeit
An exception of type 'System.ArgumentOutOfRangeException' occurred in StructureMap.dll but was not handled in user code
Additional information: Specified argument was out of the range of valid values.
Fabrik Handler
public class SimpleHandlerFactory : IAmAHandlerFactory
{
public IHandleRequests Create(Type handlerType)
{
return new GreetingCommandHandler();
}
public void Release(IHandleRequests handler)
{
}
}
die folgenden Fehler haben
Der CommandHandler
public class GreetingCommandHandler : RequestHandler<GreetingCommand>
{
public override GreetingCommand Handle(GreetingCommand command)
{
Debug.Print("This is the trace for the command : {0}", command.Name);
return base.Handle(command);
}
}
Und meine Structuremap Abhängigkeit Scope
public IHandleRequests<T> GetExecutorFor<T>() where T : class, IRequest
{
return this.Container.GetAllInstances<IHandleRequests<T>>().FirstOrDefault(); // GetInstance() throws exception if more than one found
}
und dann auf dem IoC.cs
public static IContainer Initialize() {
ObjectFactory.Initialize(x =>
{
x.Scan(scan =>
{
scan.TheCallingAssembly();
scan.WithDefaultConventions();
});
// x.For<IHandleRequests<IRequest>>().Use<IHandleRequests<IRequest>>();
// So this is where I was going wrong I should of been doing
x.For<IHandleRequests<GreetingCommand>>().Use<GreetingCommandHandler>();
});
return ObjectFactory.Container;
}
Vielen Dank im Voraus,
Martyn
Perfect @pedro das ist genau das, was benötigt wurde,: D war nach einem langen Wochenende nur ein bisschen dick –