Ich debugge den Quellcode von jemand anderem, und ich bin nicht wirklich sicher, wie es funktioniert, also bin ein bisschen fest.Fehler bei der Verwendung der Aktion (T, Objekt)
Dieser Code:
List<string> source = new List<string>();
for (int ordinal = 0; ordinal < dbDataReader.FieldCount; ++ordinal)
source.Add(dbDataReader.GetName(ordinal));
var list = source.Select(n => new {
n = n,
prop = props.FirstOrDefault<DB.PropInfo<T>>((Func<DB.PropInfo<T>, bool>)(p => string.Equals(p.Name, n, StringComparison.Ordinal)))
?? props.FirstOrDefault<DB.PropInfo<T>>((Func<DB.PropInfo<T>, bool>)(p => string.Equals(p.Name, n, StringComparison.OrdinalIgnoreCase)))
}
)
.Select(param0 => new { Name = param0.n, Property = param0.prop })
.ToList();
while (dbDataReader.Read())
{
T instance = Activator.CreateInstance<T>();
foreach (var data in list)
data.Property.Setter(instance, Convert.ChangeType(dbDataReader[data.Name], data.Property.Type)); // ERROR HERE
objList.Add(instance);
}
wirft diese Ausnahme:
Argument: Statische Eigenschaft erfordert null Instanz, nicht-statische Eigenschaft erfordert nicht-null-Instanz. Parametername: Eigenschaft
Die Variablen instance
und data
alle haben, was aussehen gültige Werte.
Was ist hier falsch, bitte?
Scheint, als würden Sie eine 'statische' Eigenschaft in Ihre Liste aufnehmen Wenn es unerwünscht ist, filtern Sie es aus. Wenn dies der Fall ist, müssen Sie 'null' anstelle von 'instance' an – haim770
data.Property übergeben ;} öffentliche Aktion Setter {get; set;} öffentlichen Typ Typ {get; set;}} so nicht statisch. –
radders
Übergabe von null anstelle von Instanzenerträgen: Fehler CS1503: Argument 1: kann nicht von '' in 'T' konvertiert werden –
radders