Config MediatR

سوال شده توسط: گورگیز الیه

تاریخ ثبت: ۱۴۰۰/۱۲/۰۶

بازدید: 321

پاسخ: 6

تگ: Asp.net Core


سلام وقت بخیر
توی اون بخشی که داریم MediatR رو ادد میکنیم میتونیم بجای (query | command) type of مستقیماً IRequest رو بهش معرفی کنیم؟؟

پاسخ ها
user

محمد اشرافی

سلام وقت بخیر

نه نمیشه ، باید Assembly بهش معرفی کنید که بره توی اون مسیر هرچی کلاس مربوط به Command ها و Handler ها هست رو اضافه کنه به خود اش ( لازم نیست حتما کامند یا Query رو بهش داد ، هر کلاس دیگه ای رو می تونید بهش بدین مهم اینه که توی یه Assembly باشن)

user

گورگیز الیه

من متوجه نشدم
ضمن اینکه من سوالم از این جهت هست که
من دوست ندارم تنها یک کلاس از نوع command یا query رو assembly کنم و ورودی بدم. میخوام یک class یا interface طراحی کنم که اون رو بجاش ورودی بدم.

نمیدونم سوالم رو خوب مطرح کردم یا نه.
ولی بهش بعنوان یه وسواس توی کد نویسی نگاه کنید.
یعنی وقتی 10 تا command هست نمیخوام یکیش رو معرفی کنم که نماینده همه باشه ترجیح میدم یه base رو معرفی کنم که نماینده 10 تا باشه یا اینکه هر 10 تا رو معرفی کنم.

ضمن اینکه آیا میشه خود همون interface رو به assembly تبدیل کرد؟؟

user

محمد اشرافی

من دقیق صحبتتون رو متوجه نشدم ، اگر می خواید جای IRequest یک base بسازید مشکلی نداره Base رو  میسازید و اون کلاس base باید از IRequest ارث بری کنه

ببینید برای mediatR فرقی نداره چی بهش پاس بدین اون فقط آدرس از شما می خواد (assembly) حالا شما اصلا می تونید یه کلاس الکی بسازید و اون بهش بدین ولی باید توی همون پروژه ای باشه که Command ها یا Query ها قرار داره مثلا : 

 

services.AddMediatR(typeof(testClass).Assembly);

فکر کنم شما منظور از assembly رو هنوز درک نکرده باشید ، 

ببینید توی c# هر پروژه که میسازیم یک Assembly خاص دارن ( فرض کنید مثل همون NameSpace ) ، یعنی assembly پروژه Application با assembly پروژه Config فرق داره ، حالا ما به MediatR میگیم برو توی فلان پروژه و هرچی کلاس مربوط به خودت هست رو پیدا کن و اضافه اشون کن به Di Container

user

گورگیز الیه

پس یعنی ما میتونیم همون فایل با پسوند csproj. رو بهش معرفی کنیم؟
مثلاً Clean-Arch.Query.csproj رو میتونیم بهش بدیم. درسته؟

user

محمد اشرافی

نه assembly باید بهش بدین ( از نوع assembly باشه)

برید یکم درمورد assembly ها در c# و reflection در c# تحقیق کنید و بخونید تا متوجه بشید داره چه اتفاقی پشت پرده می افته

user

گورگیز الیه

باشه چشم
خیلی ممنون از توضیحاتتون

برای ثبت پاسخ باید خود شوید

محبوب ترین مقالات