¿Cómo obtengo una lista de todas las propiedades de una clase?
c#
.net
reflection
properties
nawfal
fuente
fuente
internal
propiedades. ¿Tal vez soy el único que quedó atrapado en la sintaxisprivate
/non-public
?using System.Reflection
directiva y elSystem.Reflection.TypeExtensions
paquete 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.Reflection
espacio 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