بهترین روش تولید متن پیغام کدام است؟
نویسنده: هادی مزارعی
تاریخ: ۱۴۰۴/۰۸/۱۴ ۲۱:۱۰
آدرس: www.dntips.ir
ApiResponse برگردانده خواهد شد که این کلاس یک ویژگی از نوع List دارد که فهرست پیغامهای تولید شده در لایه Application را برای Client برمیگرداند.ApiResponse اضافه میشود و در برنامه Client نیز در همان خط که اعتبارسنجی انجام میشود یک پیغام نمایش داده میشود.Resource استفاده نکنم.static که مشابه constantهایی هستند که در بالا عنوان شد ولی در Intelisense مقدار کامل متغیر static نمایش داده نمیشود مگر آنکه از توضیحات xml استفاده کنم که کار اضافی است.namespace Application.Shared.Messages
{
// برای پیغامهای مرتبط با اعتبارسنجی عمومی
public static class ValidationMessages
{
public const string FieldIsRequired = "ورود این فیلد اجباری است.";
public const string InvalidLength_MinMax = "طول {0} باید بین {1} و {2} کاراکتر باشد."; // برای پیغامهای دارای پارامتر
public const string InvalidEmailFormat = "قالب ایمیل وارد شده صحیح نیست.";
}
// برای پیغامهای مرتبط با عملیات موفقیت آمیز
public static class SuccessMessages
{
public const string EntityCreated = "{0} با موفقیت ثبت شد.";
public const string EntityUpdated = "{0} با موفقیت ویرایش شد.";
}
// برای پیغامهای مرتبط با یک ماژول خاص (مثلاً کاربران)
public static class UserMessages
{
public const string UsernameAlreadyExists = "نام کاربری قبلاً در سیستم ثبت شده است.";
public const string UserNotFound = "کاربر مورد نظر یافت نشد.";
}
}public const string User_Required_Field_Error = "ورود نام کاربر اجباری است."public const string FieldIsRequired = "ورود این فیلد اجباری است."string.Format یا همان $ در C# استفاده کنید.InvalidLength_MinMaxطول {0} باید بین {1} و {2} کاراکتر باشد.string.Format(ValidationMessages.InvalidLength_MinMax, "نام", 5, 50)ValidationMessages. لیستی از مفاهیم اعتبارسنجی را ببینید که بسیار خواناتر و منظمتر است و نیاز به فایل XML Doc اضافی را برای متغیرهای static از بین میبرد. همچنین، مزیت کامل نمایش داده شدن متن در InteliSense ثابتها حفظ میشود.ValidationMessages.FieldIsRequired را میبینید که هدف کد را بهتر بیان میکند.Shared دارید و این پیغامها هم توسط لایه Application (که پیغامها را تولید میکند) و هم توسط Client (برای اعتبارسنجی اولیه فرمها) استفاده میشوند، بهترین محل، قرار دادن این کلاسهای ثابت در لایه Shared است.Client شما اعتبارسنجی کامل را انجام نمیدهد، اما برای اعتبارسنجیهای اولیه از این ثابتها استفاده میکند.Messages در پروژه Shared.public static class (مثلاً ValidationMessages, SuccessMessages, UserMessages) در این Namespace.FieldIsRequired) به جای تلاش برای بازتولید متن کامل.string.Format در لایه Application و Client برای پیغامهای پویا.List پیغامهای ApiResponse، از این ثابتها استفاده کنید.