Como serializar como Json uma estrutura de objeto com referências circulares?

Eu tenho uma estrutura 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
}

Eu tento serializar proposta como Json, isso me diz que existe uma referência circular, que está correta.
Infelizmente, não posso tocar nos objetos, pois eles estão em uma DLL referenciada de outro projeto - caso contrário, eu os alteraria.

Existe uma maneira de serializar como Json e ignorar as propriedades circulares?