Como obtenho uma lista de todas as propriedades de uma classe?
c#
.net
reflection
properties
nawfal
fonte
fonte
internal
propriedades também. Talvez eu seja o único que ficou com a sintaxeprivate
/non-public
?using System.Reflection
diretiva e oSystem.Reflection.TypeExtensions
pacote referenciados - isso fornece a superfície da API ausente por meio de métodos de extensãoVocê pode usar o Reflection para fazer isso: (da minha biblioteca - obtém os nomes e os valores)
Isso não funcionará para propriedades com um índice - por isso (está ficando difícil):
Além disso, para obter apenas propriedades públicas: ( consulte MSDN na enumeração BindingFlags )
Isso funciona com tipos anônimos também!
Para obter apenas os nomes:
E é praticamente o mesmo para os valores, ou você pode usar:
Mas isso é um pouco mais lento, eu imaginaria.
fonte
t.GetProperties(BindingFlags.Instance | BindingFlags.Public)
out.GetProperties(BindingFlags.Static | BindingFlags.Public)
Esta função é para obter a lista de propriedades da classe.
fonte
yield return
. Não é grande coisa, mas é uma maneira melhor de fazê-lo.Você pode usar o
System.Reflection
espaço para nome com oType.GetProperties()
mehod:fonte
Com base na resposta de @ MarcGravell, aqui está uma versão que funciona no Unity C #.
fonte
Essa é a minha solução
fonte
Você pode usar reflexão.
fonte
Eu também estou enfrentando esse tipo de exigência.
A partir dessa discussão, recebi outra ideia,
Isso também está mostrando o nome da propriedade.
isso mostra o número de propriedades.
Obrigado a todos. Esta é uma boa discussão.
fonte
Aqui está a resposta melhorada do @lucasjones. Incluí as melhorias mencionadas na seção de comentários após sua resposta. Espero que alguém ache isso útil.
fonte