In .NetCore 6 ho realizzato una procedura che correttamente carica una dll esterna, ne crea una istanza per poter eseguire poi i suoi metodi. Fin qui tutto bene senza problemi particolari.
Il problema nasce nel passaggio dei parametri al metodo 'Invoke' che accetta solo tipi object[]
Diciamo che la dll esterna caricata contenga questo metodo che chiede in ingresso un oggetto Json:
public Json_2fattori Test1_converter(JObject datijson)
{
Json_2fattori mydati = new Json_2fattori
{
fattore1 = datijson["parametro1"].ToObject<double>(),
fattore2 = datijson["parametro2"].ToObject<double>()
};
return mydati;
}
e che il programma principale lo chiami come segue:
object instanceDLL = Activator.CreateInstance(tipoDLL);
MethodInfo metodoInfo = tipoDLL.GetMethod(metodo);
risultato = metodoInfo.Invoke(instanceDLL, new object[] {myJsonData});
dove myJsonData è un oggetto Newtonsoft JObject che contiene i parametri con valore in formato json:
{
"parametro1": "30.0",
"parametro2": "40.0"
}
A runtime l'errore che mi si presenta è il seguente:
Newtonsoft.Json.Jobject cannot be converted to Newtonsoft.Json.Jobject
Perche?