View Full Version : نحوه استفاده از structuremap در mvc5
helpsos
چهارشنبه 27 فروردین 1393, 08:42 صبح
با سلام
برای استفاده از الگوی واحد کار من از structuremap استفاده نمودم ولی نمیدونم که چرا بهم خطا میده . من از کدهای فایل ضمیمه استفاده کردم ولی ....
hp1361
پنج شنبه 28 فروردین 1393, 20:25 عصر
سلام این لینک میتونه کمکت کنه
http://www.webadvanced.com/blog/asp.net-mvc-4-web-api-and-structuremap
موفق باشیم
helpsos
شنبه 30 فروردین 1393, 00:42 صبح
سلام
نه متاسفانه کمکی نکرد
من از آخرین ورژن structuremap استفاده کردم که به این خطاها رسیدم
کسی راه حلی نداره؟
mydonya
پنج شنبه 20 فروردین 1394, 15:04 عصر
به صورت زیر عمل کنید
یک فایل با نام مثلا ControllerFactory.cs با کد زیر ایجاد کنید
public class EstesnaControllerFactory:DefaultControllerFactory
{
protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
{
if (controllerType == null)
throw new InvalidOperationException(string.Format("Page not found: {0}", requestContext.HttpContext.Request.RawUrl));
return EstesnaObjectFactory.Container.GetInstance(control lerType) as Controller;
}
}
و یک فایل با نام ObjectFactory.cs
public static class ObjectFactory
{
private static readonly Lazy<Container> ContainerBuilder =
new Lazy<Container>(DefaultContainer, LazyThreadSafetyMode.ExecutionAndPublication);
public static IContainer Container
{
get { return ContainerBuilder.Value; }
}
private static Container DefaultContainer()
{
return new Container(ioc =>
{
#region Structures
ioc.For<IDataContextAsync>().Use<DataContext>();
ioc.For<IUnitOfWorkAsync>().Use<UnitOfWork>();
}
}
در این فایل میتونید اینترفیس ها و کلاسها رو مشخص کنید
و سپس در فایل Global.asa.cx
ControllerBuilder.Current.SetControllerFactory(new ControllerFactory());
این کد رو اضافه کنید
ali_72
شنبه 22 فروردین 1394, 08:25 صبح
سلام
من StructureMap را در سایت آقای نصیری خوندم ولی کامل متوجه مفهوم اون نشدم ببخشید اگه امکانش هست یه توضیح کوتاه بدید که چیه چرا و کجا استفاده میشه؟
mydonya
شنبه 22 فروردین 1394, 10:50 صبح
برای پیاده سازی مفهوم Dependency Injection از کتابخانه های متفاوتی نظیر Structure Map , Unity , Ninject و غیره استفاده میشه. بدین معنی که نمونه سازی از کلاسها توسط اینترفیس های آن انجام بشه و بدین صورت نرم افزار اصطلاحا loose Couple میشه.
همچنین میتونید نمونه سازی از کنترلر های MVC را هم به عهده این کتابخانه ها قرار بدین
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.