• 1399/05/02

چگونگی دسترسی به resource ها از لایه domain :

سلام و درود

در جواب یکی از دوستان گفتید که پوشه مربوط به چند زبانگی رو توی core قرار میدید. این مورد برای مدیریت تو سطح کنترلر و ویو که تو همون لایه هستن مناسبه، اما انگار با annotation هایی که توی لایه دامین برای مدل هامون تعریف کردیم، مساله دارن.

وقتی بخوایم از لایه domain به resource مون که تو لایه پرزنت هست، دسترسی داشته باشیم، به چه صورت میشه؟

  • 1399/05/02
  • ساعت 07:12

خاطرم نیست چرا این رو گفتم ولی خیر ما در خود وب میزاریم چون مربوط به presenter هست


  • 1399/05/02
  • ساعت 09:43

بله این رو متوجه شدم

سوالم این بود که چطوری به مدل های لایه ی دامین، یا ویو مدل ها، اون رو معرفی میکنید.

اینطور که من متوجه شدم، اسم پروژه ای که میخواد ازش استفاده کنه رو هم باید به ابتدای فایل resource  اضافه کنیم. در واقع نام فایل resource  اینطوری میشه:

xProject.Domain.Models.Product.fa-IR

وقتی اسم رو این مدلی قرار بدیم، لایه مدل هم فایل resource ما رو میشناسه، تا اینجاشو متوجه شدم، الان سوالم اینه که چطور برای کل پوشه ی Models یک resource اشتراکی قرار بدم؟

چون اینطوری برای هر کلاس باید یک resource  بسازم که منطقی نیست.




  • 1399/05/02
  • ساعت 15:46

متشکرم جناب مدائنی

جوابی که خودم بهش رسیدم رو اینجا می ذارم، برای بقیه دوستان که ممکنه نیازشون بشه

کلیت بدین صورت هست:

ریسورس ها رو توی همون لایه پرزنت، به یک class library می بریم.

تنظیمات استارت آپ هم بدین صورته:

services.AddControllersWithViews()
                .AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix, option =>
                {
                    option.ResourcesPath = "Resources";
                })
                .AddDataAnnotationsLocalization(option =>
                {
                    option.DataAnnotationLocalizerProvider = (type, factory) => factory.Create(
                        baseName: "SharedResource", // همون کلاس SharedResource.cs
                        location: "X.Resource" // همون class library که ساختیم
                    );
                });

            services.AddLocalization(options =>
            {
                options.ResourcesPath = "Resources";
            });
        

بدین صورت هر موردی که توی فایل resource مون ساختیم، از لایه دامین و ویو مدل و ... در دسترس هست.


  • 1399/05/02
  • ساعت 15:49

ممنون


logo-samandehi