呼叫通用方法系统.reflection.targetException:对象不匹配目标类型
我正在尝试从发送的字符串和ID中获取一个对象。Ipreserver
var type = Type.GetType($"{Namespace.Models}.{typeName.Singularize().Pascalize()}");
MethodInfo method = typeof(IPreserver).GetMethod(nameof(IPreserver.ReadAsync));
MethodInfo generic = method.MakeGenericMethod(type);
var instance = Activator.CreateInstance(type);
var model = generic.Invoke(instance, new object[] { id });
被授予控制器。 ipreserver.readasync的签名是:
Task<T> ReadAsync<T>(Guid id)
一切看起来都不错,直到var model = generic.invoke
line。但是它抛出了:
System.Reflection.TargetException: Object does not match target type.
如何正确调用readasync?
I'm trying to get an object based off of a string and id that are sent in.
var type = Type.GetType(quot;{Namespace.Models}.{typeName.Singularize().Pascalize()}");
MethodInfo method = typeof(IPreserver).GetMethod(nameof(IPreserver.ReadAsync));
MethodInfo generic = method.MakeGenericMethod(type);
var instance = Activator.CreateInstance(type);
var model = generic.Invoke(instance, new object[] { id });
IPreserver is DI-ed into the controller. The signature of IPreserver.ReadAsync is:
Task<T> ReadAsync<T>(Guid id)
Everything looks good up to the var model = generic.Invoke
line. But then it throws:
System.Reflection.TargetException: Object does not match target type.
How can I properly call ReadAsync?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论