Pregunta

Quiero crear varias propiedades en la marcha dentro del constructor de la clase y agregarlas a la clase actual. La plantilla de la propiedad es la siguiente

public [PropertyType] [PropertyName]
{
get {return Container.Resolve();}
}

He leído un poco sobre codedom y reflexión.

Cualquier pista sería muy apreciada. Gracias por adelantado

EDITAR: Estoy explicando el propósito debido a la cantidad de preguntas ... Estoy tratando de implementar la clase base para un localizador de modelos de vista. La vinculación en XAML se logra refiriéndose a una propiedad por su ruta, por lo tanto, debe ser una propiedad. Los tipos y nombres de las propiedades que se agregarán solo se conocen en tiempo de ejecución, por lo tanto, estoy usando la reflexión para obtenerlos. En resumen, necesito un ejemplo de tomar un código y compilarlo dinámicamente en la clase dada.

¿Fue útil?

Solución

Si está bajo C# 4, puede usar las nuevas características dinámicas para eso. Usar ExpandoObject o DynamicObject Para agregar propiedades a su objeto dinámicamente. Si luego consulta ellos en XAML, ellos se resolverán correctamente.

En cualquier caso, no es posible modificar la clase existente. Lo que puede es crear una nueva clase, que pueda heredar de la clase existente y agregar las propiedades a eso. Deberías poder atarlos desde XAML.

Otros consejos

Enfoque alternativo:

Puede implementar iCustomTypedescriptor y proporcionar las propiedades adicionales

Enlace: Problema con el enlace de datos de la cuadrícula

Ate tus cosas XAML a algo como XML y cambia XML en el tiempo de ejecución

Puede crear nuevas calss y heredarlo desde la clase actual, la nueva clase puede tener las propiedades sobre la mosca y la funcionalidad de la clase base

si es posible echar un vistazo a estoAyuda requerida para agregar nuevos métodos, propiedades en las clases existentes dinámicamente

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top