Wie erhalte ich eine Liste mit allen Eigenschaften einer Klasse?
Antworten
Zu viele Anzeigen?
Ch Usman
Punkte
181
Daniel Donizetti batista
Punkte
81
Ali Osman Mollahüseyinoğlu
Punkte
109
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;
}
}
}
Daan
Punkte
6912
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();
}