JavaScriptSerializer: كيفية تحويل التعداد (enum) إلى سلسلة JSON بدلاً من رقم؟
مرحباً بالجميع! أنا مطور C# مبتدئ، أكتب تطبيق ويب صغير باستخدام ASP.NET Web Forms (مدرسة قديمة، لكن المشروع legacy). أستخدم `JavaScriptSerializer` لتسلسل كائن إلى JSON لإرساله إلى العميل.
لدي كلاس مثل هذا:
```csharp
public class User
{
public string Name { get; set; }
public UserRole Role { get; set; }
}
public enum UserRole
{
Admin,
Moderator,
User
}
```
أقوم بإنشاء كائن وتسلسله:
```csharp
var user = new User { Name = "Иван", Role = UserRole.Admin };
var serializer = new JavaScriptSerializer();
string json = serializer.Serialize(user);
Console.WriteLine(json);
```
الناتج هو: `{"Name":"Иван","Role":0}`.
المشكلة أن `Role` يتم تسلسلها كرقم (0, 1, 2)، بينما أحتاج إلى قيمة نصية مثل `"Admin"`. على العميل، هذا ضروري للقراءة والمقارنة.
أعلم أنه في `System.Text.Json` أو `Newtonsoft.Json` الحديثة توجد attributes مثل `[JsonConverter(type