- مثال کامل بحث جاری که به همراه یک Area نیز هست؛ برای دریافت:
DI06.zip
با سلام
در استفاده عادی و بدون structureMap مشکلی ندارم اما زمانی که از StructureMap استفاده میکنم
در کلاس DefaultControllerFactory در متد GetControllerInstance مقدار controllerType برای Areaها null برمی گردد
همون طور کد خدمتتون عرض کردم در حالت عادی و بدون structormap مشکلی وجود ندارد و کلی مسیر دهیها به درستی انجام می شود ولی در زمان استفاده از Ioc با Areaها مشکل دارم.
در اینجا مطلبی دیدم که مسیردهیها را از طریق یک Super کلاس انجام داده اند که فکر نمیکنم مسیردهی مجدد کار درستی باشد و از طرفی super کلاس من بین کنترلهای Area و کنترلهای خارج از Area مشترک است و نمیتونم همچین کاری انجام بدم.
چرا در GetControllInstance مقدار controllerType در زمان استفاده از structoremap برای مسیرها و کنترلهای موجود در Areaها null است در حالتی که بدون استفاده از آن مسیردهی به درستی انجام میشود
خیلی ممنون از زحماتی که میکشین. انشالله که همیشه سلامت باشید
یه موردی که در برنامههای دسکتاپ هست این است که کاربر میخواد همزمان چندتا صفحه رو با هم ببینه ولی چیزی که من در فریمورک تهیه شده شما دیدم این بود که فقط میتواند که یک صفحه رو ببینه. حالا خواستم ببینم که آیا برای این منظور راهی هست؟
با تشکر از زحمات شما
در پروژهی ثالث یاد شده، در کلاس IoC آن، کار <AddRegistry<DefaultRegistry انجام شدهاست و اگر در برنامهی شما IoC.Initialize فراخوانی نشود، کلاس DefaultRegistry جایی استفاده نخواهد شد و پس از آن پیام یافت نشدن تنظیمات را دریافت میکنید.
همچنین این کتابخانه از Microsoft.Web.Infrastructure.DynamicModuleHelper برای کارهای Service locator استفاده کردهاست. به عبارتی اگر در حالت عادی جواب میگیرید (مثلا تزریق وابستگی در کنترلرها درست کار میکنند) اما با فراخوانی ObjectFactory مشکل دارید، از این جهت است که DefaultRegistry آن اصلا به ObjectFactory معرفی نشدهاست. اما DefaultRegistry و خروجی IoC.Initialize آن به صورت محدود در اختیار ماژولهای این کتابخانه قرار گرفتهاند.
- در کل روشی که در مطلب جاری عنوان شده، بررسی زیر ساخت این ابزارها است و با MVC 5 هم کار میکند. با 3 و 4 هم کار میکند.
کدی که قرار است در هر درخواست از لایه سرویس برای چک کردن اینکه کاربر قفل شده یا نه استفاده میشود.