En C #, ¿cómo puedo deserializar este json cuando un campo puede ser una cadena o una matriz de cadenas?

Tengo un sitio web asp.net-mvc y estoy leyendo en una cadena Json de una base de datos. Aquí está el siguiente json en una base de datos. Podría verse así:

{"description": "Test", "contacts": ["joe@gmail.com", "bill@yahoo.com"], "enabled": true}

o esto:

{"description": "Test", "contacts": "joe@gmail.com, bill@yahoo.com", "enabled": true}

Como puede ver, el campo de contactos es:

una cadena (con elementos separados por comas)una serie de cadenas.

Quiero convertir a esta clase:

public class MyJob
{
    public string description;
    public string[] contacts;
    public string enabled;
}

cuando intento asignar solo a una cadena (cambiando lo anterior a: contactos de cadena pública;) usando JavascriptSerializer ():

var serializer = new JavaScriptSerializer();
string contacts = serializer.Deserialize<MyJob>(theAboveJsonString).contacts;

Me sale este error en los casos en que es una matriz:El tipo 'System.String' no es compatible con la deserialización de una matriz.

¿Cuál es la mejor manera de deserializar esto para manejar el caso de:

una cuerdauna serie de cadenas.

para el campo de contacto. Estoy feliz de poner cualquier lógica condicional necesaria. .

Intenté esto:

  var contacts = serializer.Deserialize<MyJob>(theAboveJsonString).contacts;
        if (contacts is string)
        {
            jobInfo.contacts = contacts;
        }
        else
        {
            jobInfo.contacts = String.Join("; ", contacts );
        }

pero eso no parece arreglarlo ya que todavía estoy recibiendo el error anterior cuando es una matriz