¿Cómo serializar como Json una estructura de objetos con referencias circulares?

Tengo una estructura de objeto como esta:

public class Proposal {
    public List<ProposalLine> Lines { get; set; }
    public string Title { get; set; }
}

public class ProposalLine {
    public Proposal Proposal { get; set; }  // <- Reference to parent object
}

Intento serializar la Propuesta como Json, me dice que hay una referencia circular, que es correcta.
Desafortunadamente, no puedo tocar los objetos, ya que están en una DLL referenciada de otro proyecto, de lo contrario los cambiaría.

¿Hay una manera de serializar como Json e ignorar las propiedades circulares?

Respuestas a la pregunta(1)

Su respuesta a la pregunta