PDA

View Full Version : سوال: سوالی در مورد تزریق وابستگی در لایه سرویس برای پیاده سازی validation



OmMiD_MtWo
پنج شنبه 26 اسفند 1395, 21:23 عصر
سلام
من برای اینکه میخواستم یه سری از Exceptionها رو در لایه ی داخلی مربوط به سرویس ها Handle کنم به همین دلیل یه اینترفیس به اسم IvalidationService رو در لایه سرویس ها پیاده سازی کردم. به صورت زیر که این اینترفیس رو کلاسی به نام ValidationService پیاده سازی میکنه.


144702

برای مپ کردن اینترفیس ها هم از Structure map استفاده کردم.تمام کنترلرهای برنامه هم قرار هست تا از basecontroller که خودم از Controller ارث بری کردم، استفاده بشه.

144701

ولی یه مشکلی که وجود داره اینه که نمیدونم چه جوری به strucuture map بفهمونم که در اینترفیس پیاده سازی شده ی مثلا project service، اینترفیس ivalidationservice که در constructureش قرار داده همون property مربوط به basecontroller هست و شی جدیدی برای سرویس ها ایجاد نکنه.

144700

ممنون میشم راهنمایی کنید.

hakim22
جمعه 27 اسفند 1395, 08:28 صبح
به نظرم کدی که پیاده کردید پیچیده شده و میشه ساده تر باشه.

چیزی که من متوجه شدم اینه که شما قصد دارید ValidationService رو از کنترلر به ProjectService پاس بدید. برای اینکار ساده ترین راه اینه که یک متغیر عمومی در ProjectService تعریف کنید و دیگه نیازی به تزریق وابستگی در خط 21 در تصویر آخر ندارید.

روشهای دیگری برای تزریق وابستگی وجود داره ، مثلا Property Injection و Method Injection بعضی مواقع مثل این حالت شما نمیشه وابستگی ها رو در زمان ایجاد کلاس (Constructor) تزریق کرد.

OmMiD_MtWo
جمعه 27 اسفند 1395, 11:59 صبح
این متغیر عمومی که میگید رو چه جوری میتونم تعریف کنم که هنگام اجرای برنامه، اگر مشکلی در validation در داخل action به وجود اومد، ارورهای موجود در modelstatedictionary موجود در action رو به validation l موجود در سرویس اضافه کنم و برای نمایش به کاربر برگردونم؟ در حقیقت، میخوام که modelstatedictionary و validationی که من در برنامه توسعه دادم، یکپارچه باشند؟