779 Stimmen

Wie erhält man die Liste der Eigenschaften einer Klasse?

Wie erhalte ich eine Liste mit allen Eigenschaften einer Klasse?

16voto

Ch Usman Punkte 181

Der folgende Code liefert Ihnen die Liste der Klasseneigenschaften/Attribute/Tabellenspalten

var Properties = typeof(className).GetProperties().Select(x=>x.Name).Tolist();

15voto

Versuchen Sie dies:

var model = new MyObject();
foreach (var property in model.GetType().GetProperties())
{
    var descricao = property;
    var type = property.PropertyType.Name;
}

10voto

Das ist meine Lösung

public class MyObject
{
    public string value1 { get; set; }
    public string value2 { get; set; }

    public PropertyInfo[] GetProperties()
    {
        try
        {
            return this.GetType().GetProperties();
        }
        catch (Exception ex)
        {

            throw ex;
        }
    }

    public PropertyInfo GetByParameterName(string ParameterName)
    {
        try
        {
            return this.GetType().GetProperties().FirstOrDefault(x => x.Name == ParameterName);
        }
        catch (Exception ex)
        {

            throw ex;
        }
    }

    public static MyObject SetValue(MyObject obj, string parameterName,object parameterValue)
    {
        try
        {
            obj.GetType().GetProperties().FirstOrDefault(x => x.Name == parameterName).SetValue(obj, parameterValue);
            return obj;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
}

7voto

Daan Punkte 6912

Sie können die Reflexion nutzen.

Type typeOfMyObject = myObject.GetType();
PropertyInfo[] properties =typeOfMyObject.GetProperties();

3voto

Imants Volkovs Punkte 861

Hier ist die verbesserte Antwort von @lucasjones. Ich habe die Verbesserungen, die im Kommentarbereich nach seiner Antwort erwähnt wurden, mit aufgenommen. Ich hoffe, jemand findet das nützlich.

public static string[] GetTypePropertyNames(object classObject,  BindingFlags bindingFlags)
{
    if (classObject == null)
    {
        throw new ArgumentNullException(nameof(classObject));
    }

        var type = classObject.GetType();
        var propertyInfos = type.GetProperties(bindingFlags);

        return propertyInfos.Select(propertyInfo => propertyInfo.Name).ToArray();
 }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X