‫۹ سال و ۸ ماه قبل، سه‌شنبه ۷ بهمن ۱۳۹۳، ساعت ۱۳:۳۰
سلام

گویا در نسخه 3 تغییراتی بوجود آمده :

1- تابع HttpContextScoped() به پکیج StructureMap.Web منتقل شده و برای استفاده از آن باید این پکیج را نیز از طریق نوگت نصب کنیم

البته در برخی مقالات (^) از LifeCycle استفاده کرده اند که منو گیج کرده ! ولی طبق فرمایش شما فکر کنم باید پکیج فوق الذکر رو نصب کنیم تا بتونیم به توابع  HttpContextScoped()  و HybridHttpOrThreadLocalScoped()  دسترسی داشته باشیم

2- به جای
ObjectFactory.ReleaseAndDisposeAllHttpScopedObjects();

باید بنویسیم :
HttpContextLifecycle.DisposeAndClearAll();
طبق این (^) مقاله
 
می‌خواستم بدونم آیا درسته ؟
‫۹ سال و ۸ ماه قبل، دوشنبه ۶ بهمن ۱۳۹۳، ساعت ۱۶:۲۲
یک مثال در این مورد در اینجا اضافه شد. نیاز است از متد ConnectImplementationsToTypesClosing برای اتصال نوع‌های جنریک به کلاس‌های متناظر پیاده سازی کننده‌ی آن‌ها استفاده کرد. همچنین در حین فراخوانی متد GetInstance باید نوع T مشخص شود که در مثال ذکر شده‌است. 
return new Container(ioc =>
{
  ioc.Scan(cfg =>
  {
   cfg.AssemblyContainingType(typeof(IHandler<>));
   cfg.ConnectImplementationsToTypesClosing(typeof(IHandler<>));
  });
});
‫۹ سال و ۸ ماه قبل، دوشنبه ۶ بهمن ۱۳۹۳، ساعت ۰۷:۲۷
با تشکر؛ امکانش هست یه مثال از رجیستر نمودن اینترفیس‌های جنریک با structureMap بزنید.
همچنین چطور میشه با استفاده از GetInstance به متد‌های پیاده سازی شده دسترسی داشت؟
و اینکه آیا این درسته ؟
 ioc.For(typeof(IGenericRepository<>)).Use(typeof(GenericRepository<>));
با استفاده از کد زیر نمیشه به متدهاش دسترسی داشت. چرا؟
SmObjectFactory.Container.GetInstance(typeof (IGenericRepository<>));
ممنون میشم از راهنماییتون.
‫۹ سال و ۹ ماه قبل، دوشنبه ۸ دی ۱۳۹۳، ساعت ۱۳:۲۸
«آیا این سرویس باید بصورت singleton پیاده سازی شود؟»
خیر. باید از سطح دوم کش استفاده کنید. برای مثال:
- یک نمونه پیاده سازی سطح دوم کش در EF
- استفاده از AOP برای پیاده سازی سطح دوم کش
- پروژه‌ی جدید «Second Level Cache for Entity Framework 6.1» 
‫۹ سال و ۹ ماه قبل، دوشنبه ۸ دی ۱۳۹۳، ساعت ۱۳:۰۰
با سلام.
من سرویسی به نام ISettingService در لایه سرویس خود دارم که شامل متدهایی برای بازیابی تنظیمات برنامه است. در برنامه بطور متناوب از این سرویس استفاده می‌کنم. آیا این سرویس باید بصورت singleton پیاده سازی شود؟ نحوه تعریف من نیز بصورت زیر است:
x.For<ISettingService>().Singleton().Use(() => new SettingService());
چون سازنده سرویس دارای پارامتر uow است، در نحوه مقداردهی آن در خطا بالا دچار خطا می‌شوم.
سازنده این سرویس بصورت زیر است:
public SettingService(IUnitOfWork uow)
{
     _uow = uow;
}
سپاس.
‫۹ سال و ۹ ماه قبل، سه‌شنبه ۲ دی ۱۳۹۳، ساعت ۱۷:۲۱
- همیشه بجای ()new MyClass می‌توان نوشت ()<>ObjectFactory.GetInstance<MyClass. در این حالت به صورت خودکار تا n سطح، تمام وابستگی‌های MyClass به صورت خودکار وهله سازی می‌شوند.
- همچنین بحث مفصلی در مورد مسیریابی و تزریق وابستگی‌ها در ASP.NET MVC در اینجا: «Improving ASP.NET MVC Routing Configuration »