J'essaie d'appeler Invoke()
mais il jette toujours:ne peut pas appeler Invoke()
objet ne correspond pas au type cible
Je ne sais pas quoi passer en premier paramètre - en supposant que c'est le problème - et j'ai essayé beaucoup de choses sans succès. Ci-dessous va mon code:
var method = typeof(IBaseRepository<>).MakeGenericType(typeof(Domain.Model.Basic.City))
.GetMethod("Get", BindingFlags.Instance | BindingFlags.Public);
var entityData = method.Invoke(??, new[] { (object)id });
Le BaseRepository
est:
public class BaseRepository<T> : IBaseRepository<T>
{
public virtual T Get(object id) { }
}
City
classe est:
public class City : Entity
Et Entity
est une classe abstraite:
public abstract class Entity
En tant que premier paramètre Invoke, j'ai essayé d'utiliser une instance de City
- ce qui devrait être le bon cas - et une instance de Entity
et d'autres choses dont j'étais sûr que cela ne fonctionnerait pas réellement.
où vous avez '' ?? vous devez passer dans une instance de votre référentiel. –
Spécifiquement, une instance de quelque chose qui implémente 'IBaseRepository' –
selon vos définitions de classe, cela devrait être un 'nouveau BaseRepository()', depuis le premier argument de 'Invoke' est documenté comme "L'objet sur lequel invoquer la méthode ou le constructeur" –
dlatikay