Utilizo C# asp.net4.Emitir un tipo anónimo en Objeto y recuperar un campo
tengo un método para rellenar un repetidor con tipos anónimos (campos: Título, CategoryId), en el interior del repetidor también coloca una etiqueta:
var parentCategories = from c in context.CmsCategories
where c.CategoryNodeLevel == 1
select new { c.Title, c.CategoryId };
uxRepeter.DataSource = parentCategories;
uxRepeter.DataBind();
tengo que cambiar las propiedades del texto para cada etiqueta dentro de mi repetidor en repetidor Evento ItemDataBound
protected void uxRepeter_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
HyperLink link = (HyperLink)e.Item.FindControl("uxLabel");
uxLabel.Text = // How to do here!!!!!!!!
}
Así que necesito establecer las propiedades de label.text utilizando e.Item (o una mejor manera si los hay).
Mi problema No puedo CASTAR el e.Item (título de campo de tipo anónimo) y configurarlo como propiedad del texto para mi etiqueta.
Entiendo que el tipo anónimo solo se puede convertir a tipo de objeto, pero en mi caso mi tipo anónimo tiene campos TitleI y CategoryId.
Mi pregunta:
cómo lanzar y recuperar el campo con que me interesa? ¿Gracias por su tiempo en esto?
EDIT: algún error que recibirá:
Unable to cast object of type '<>f__AnonymousType0`2[System.String,System.Int32]' to type 'System.String'.
Algo que me he estado preguntando: ¿es simplemente un detalle de implementación que dos tipos anónimos de la misma forma son compatibles con el tipo, o es parte de la especificación que deben ser compatibles? –
Gracias a Jon por su código completo. – GibboK
@Rex: es parte de la especificación. No tengo una referencia sobre mí, pero básicamente * dentro del mismo conjunto *, dos expresiones de construcción de tipo anónimo con los mismos nombres de propiedad y tipos en el mismo orden deben referirse al mismo tipo. –