Config MediatR
سلام وقت بخیر
توی اون بخشی که داریم MediatR رو ادد میکنیم میتونیم بجای (query | command) type of مستقیماً IRequest رو بهش معرفی کنیم؟؟
پاسخ ها
محمد اشرافی
سلام وقت بخیر
نه نمیشه ، باید Assembly بهش معرفی کنید که بره توی اون مسیر هرچی کلاس مربوط به Command ها و Handler ها هست رو اضافه کنه به خود اش ( لازم نیست حتما کامند یا Query رو بهش داد ، هر کلاس دیگه ای رو می تونید بهش بدین مهم اینه که توی یه Assembly باشن)
گورگیز الیه
من متوجه نشدم
ضمن اینکه من سوالم از این جهت هست که
من دوست ندارم تنها یک کلاس از نوع command یا query رو assembly کنم و ورودی بدم. میخوام یک class یا interface طراحی کنم که اون رو بجاش ورودی بدم.
نمیدونم سوالم رو خوب مطرح کردم یا نه.
ولی بهش بعنوان یه وسواس توی کد نویسی نگاه کنید.
یعنی وقتی 10 تا command هست نمیخوام یکیش رو معرفی کنم که نماینده همه باشه ترجیح میدم یه base رو معرفی کنم که نماینده 10 تا باشه یا اینکه هر 10 تا رو معرفی کنم.
ضمن اینکه آیا میشه خود همون interface رو به assembly تبدیل کرد؟؟
محمد اشرافی
من دقیق صحبتتون رو متوجه نشدم ، اگر می خواید جای 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
گورگیز الیه
پس یعنی ما میتونیم همون فایل با پسوند csproj. رو بهش معرفی کنیم؟
مثلاً Clean-Arch.Query.csproj رو میتونیم بهش بدیم. درسته؟
محمد اشرافی
نه assembly باید بهش بدین ( از نوع assembly باشه)
برید یکم درمورد assembly ها در c# و reflection در c# تحقیق کنید و بخونید تا متوجه بشید داره چه اتفاقی پشت پرده می افته
گورگیز الیه
باشه چشم
خیلی ممنون از توضیحاتتون