Error de que el objeto no coincide con el tipo de destino de reflexión.
Estoy obteniendo el error “El objeto no coincide con el tipo de destino”. Entiendo por qué debería estar obteniendo el error. Sin embargo, estoy asignando un “double” a un “double”.
No estoy seguro de por qué estoy obteniendo el error en el código a continuación.
El código con el que tengo problemas:
…
var specTran = new SpecTran(gapRecord);
foreach (var result in yields._predictions)
{
var type = specTran.GetType(); // –> {Name = “SpecTran” FullName = “GAP.Models.Database.SpecTran”}
var prop = type.GetProperty(result.Key); // –> {Double DexaCWT}
if (prop == null)
continue;
prop.SetValue(
(double)result.Value, // --> {[DexaCWT, 0]}
specTran);
}
Clase PredictionResult:
PredictionResult {
…
public Dictionary<string, double=””> _predictions { get; set; }
}</string,>
davy.ai
El problema en el código proporcionado radica en el orden de los parámetros en el método
SetValue
. El primer parámetro debería ser el objeto en el cual se va a establecer el valor de la propiedad, y el segundo parámetro debería ser el nuevo valor de la propiedad. Sin embargo, en el código proporcionado, el orden de los parámetros está invertido, lo cual está causando el error “Object does not match target type” (El objeto no coincide con el tipo de destino).Para solucionar este problema, se debe invertir el orden de los parámetros en el método
SetValue
. El código corregido se muestra a continuación:Con este cambio, el valor de la propiedad debería establecerse correctamente sin ningún error.