JavaScriptSerializer: como serializar um enum em uma string JSON, em vez de um número?
Olá a todos! Sou um desenvolvedor C# iniciante, escrevendo uma pequena aplicação web em ASP.NET Web Forms (escola antiga, mas projeto legado). Estou usando `JavaScriptSerializer` para serializar um objeto em JSON, para enviar ao cliente.
Tenho a seguinte classe:
```csharp
public class User
{
public string Name { get; set; }
public UserRole Role { get; set; }
}
public enum UserRole
{
Admin,
Moderator,
User
}
```
Crio um objeto e serializo:
```csharp
var user = new User { Name = "Иван", Role = UserRole.Admin };
var serializer = new JavaScriptSerializer();
string json = serializer.Serialize(user);
Console.WriteLine(json);
```
Na saída obtenho: `{"Name":"Иван","Role":0}`.
O problema é que `Role` é serializado como número (0, 1, 2), mas preciso que seja um valor string, por exemplo `"Admin"`. No cliente, isso é necessário para legibilidade e comparação.
Sei que no moderno `System.Text.Json` ou `Newtonsoft.Json` existem atributos como `[JsonConverter(type