Newtonsoft.JSON serializeobject devuelve una cadena JSON vacía [duplicado]

Esta búsqueda, ion ya tiene una respuesta aquí:

JsonConvert.SerializeObject siempre devuelve {} en XamarinForms 2 respuestas

Todo el mundo recibió esta pregunta mucho, e intenté casi todo, pero nada de eso me funciona.

Así que estoy desarrollando en Xamarin.Forms y estoy a punto de enviar mis datos al servidor. Tengo esta clase:

public class Customer
{

    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string BirthDate { get; set; }
    public string Password { get; set; }
    public string EmailAddress { get; set; }
    public string ContactNumber { get; set; }

}

Luego utilicé el método SerializeObject de Newtonsoft:

Customer customer = new Customer
        {
            FirstName = FirstName.Text,
            LastName = LastName.Text,
            BirthDate = BirthDate.Date.ToString(),
            EmailAddress = Email.Text,
            Password = Password.Text,
            ContactNumber = Mobile.Text
        };


        var item = JsonConvert.SerializeObject(customer);

Pero variableitem da como resultado una cadena que contiene un objeto JSON vacío{}. ¿Hay algún problema con mi implementación?

EDITAR: Además, noté que aunque mi clase de Cliente y sus miembros son públicos, el depurador todavía los cuenta como miembros "no públicos". Consulte "captura de pantalla del depurador":

Respuestas a la pregunta(2)

Su respuesta a la pregunta