ادامه مطلب:
به DomainClasses رفته و کلاس های مورد نیاز پروژه خود را اضافه کنید
به لایه سرویس رفته و references زیر را اضافه کنید:
DataLayer
DomainClasses
Models
سرویس های مورد نیاز پروژه را به لایه سرویس اضافه کنید.
به لایه Models رفته و references زیر را اضافه کنید:
DomainClasses
Models
مدل های پروژه را در این لایه اضافه کنید.
تغییرات زیر را در Global.asax انجام دهید:
add using:
using StructureMap;
using Project.DataLayer;
using Project.ServiceLayer;
add:
protected void Application_Start()
{
...
initStructureMap();
}
private static void initStructureMap()
{
ObjectFactory.Initialize(x =>
{
x.For<IUnitOfWork>().HttpContextScoped().Use(() => new DbContext());
x.For<ISampleService>().Use<EfSampleService>();
type all service in use project
...
});
//Set current Controller factory as StructureMapControllerFactory
ControllerBuilder.Current.SetControllerFactory(new StructureMapControllerFactory());
}
protected void Application_EndRequest(object sender, EventArgs e)
{
ObjectFactory.ReleaseAndDisposeAllHttpScopedObject s();
}
کلاس زیر را در Global.asax تایپ کنید:
and add this class:
public class StructureMapControllerFactory : DefaultControllerFactory
{
protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
{
return ObjectFactory.GetInstance(controllerType) as Controller;
}
}
پس از اتمام کار Build Solution کنید.