ادامه مطلب:

به 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 کنید.