Я этого нужно просто схватившись с основами StructureMap (IoC) и пытаюсь межтереть демо Ярче, который можно найти здесьIntergrating (Ian бочары) Ярче с StructureMap
https://iancooper.github.io/Paramore/QuickStart.html
С StructureMap в рамках проекта MVC.
Проблема, которую я имею прорабатывает, что необходимо передать в объект завода StructureMap по сборке, она возвращается
Я в настоящее время имеют следующую ошибку
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.
завод Handler
public class SimpleHandlerFactory : IAmAHandlerFactory
{
public IHandleRequests Create(Type handlerType)
{
return new GreetingCommandHandler();
}
public void Release(IHandleRequests handler)
{
}
}
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);
}
}
И мой StructureMap Dependency 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
}
А потом на 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;
}
Заранее спасибо,
Martyn
Perfect @pedro это именно то, что было необходимо: D был просто немного толстым после долгого уик-энда –