Reparto al tipo anónimo

Tuve el siguiente problema hoy, y me preguntaba si hay una solución para mi problema.

Mi idea fue construir clases anónimas y usarlas como una fuente de datos para un WinForm BindingSource:

public void Init()
{
    var option1 = new
                  {
                      Id = TemplateAction.Update,
                      Option = "Update the Templates",
                      Description = "Bla bla 1."
                  };

    var option2 = new
                  {
                      Id = TemplateAction.Download,
                      Option = "Download the Templates",
                      Description = "Bla bla 2."
                  };

    var list = new[] {option1, option2}.ToList();

    bsOptions.DataSource = list; // my BindingSource

    // cboTemplates is a ComboBox
    cboTemplates.DataSource = bsOptions; 
    cboTemplates.ValueMember = "Id";
    cboTemplates.DisplayMember = "Option";

    lblInfoTemplates.DataBindings.Add("Text", bsOptions, "Description");
}

Eso funciona bien hasta ahora.

El problema que tuve fue sacar la identificación de la propiedad "Actual" de BindingSource, porque no puedo devolverla al Tipo Anónimo:

private void cmdOK_Click(object sender, EventArgs e)
{
    var option = (???)bsOptions.Current;
}

¿Supongo que no hay manera de averiguar el tipo de "Actual" y acceder a la propiedad "Id"? Tal vez alguien tiene una buena solución ...

Sé que hay otras (y también mejores) formas de obtener la Id. (Reflexión, leyendo el valor de ComboBox, sin usar tpyes anónimos, ...) Soy cortés si es posible obtener el Tipo de bsOptions. Corriente de forma elegante.

Respuestas a la pregunta(7)

Su respuesta a la pregunta