¿Cómo obtengo una lista de todas las propiedades de una clase?
c#
.net
reflection
properties
nawfal
fuente
fuente

internalpropiedades. ¿Tal vez soy el único que quedó atrapado en la sintaxisprivate/non-public?using System.Reflectiondirectiva y elSystem.Reflection.TypeExtensionspaquete referenciados; esto proporciona la superficie API faltante a través de métodos de extensiónPuede usar Reflection para hacer esto: (desde mi biblioteca, esto obtiene los nombres y valores)
Esto no funcionará para propiedades con un índice; para eso (se está volviendo difícil de manejar):
Además, para obtener solo propiedades públicas: ( consulte MSDN en BindingFlags enum )
¡Esto también funciona en tipos anónimos!
Para obtener solo los nombres:
Y es casi lo mismo para los valores, o puede usar:
Pero eso es un poco más lento, me imagino.
fuente
t.GetProperties(BindingFlags.Instance | BindingFlags.Public)ot.GetProperties(BindingFlags.Static | BindingFlags.Public)Esta función es para obtener la lista de propiedades de clase.
fuente
yield return. No es gran cosa, pero es una mejor manera de hacerlo.Podrías usar el
System.Reflectionespacio de nombres con elType.GetProperties()método:fuente
Basado en la respuesta de @ MarcGravell, aquí hay una versión que funciona en Unity C #.
fuente
Esa es mi solucion
fuente
Puedes usar la reflexión.
fuente
También me enfrento a este tipo de requisitos.
De esta discusión obtuve otra idea,
Esto también muestra el nombre de la propiedad.
Esto muestra el número de propiedades.
Gracias a todos. Esta es una buena discusión.
fuente
Aquí se mejora la respuesta de @lucasjones. Incluí mejoras mencionadas en la sección de comentarios después de su respuesta. Espero que alguien encuentre esto útil.
fuente