【发布时间】:2019-02-25 00:24:47
【问题描述】:
我搜索了几篇关于类似问题的不同帖子,但似乎没有一个能解决我的特定问题(尽管我相信它们离我不远了)。
下面的链接是最接近我的问题的版本
"Object does not match target type" when calling methods using string in C#
我的问题与链接中的问题之间的唯一区别是我调用的是泛型方法。
当我拨打电话时,我收到错误消息“对象与目标类型不匹配”,但类型,我可以说的完全匹配。 这是我重现问题的示例代码。
任何帮助将不胜感激
class Program
{
static void Main(string[] args)
{
var obj = new SerializeObject();
var serializer = new Serializer();
var serialiserType = serializer.GetType();
MethodInfo method = serialiserType.GetMethod("Deserialize");
if (method == null)
{
return;
}
var t = obj.GetType();
MethodInfo genericMethod = method.MakeGenericMethod(t);
var tmp = genericMethod.Invoke(obj, new object[] { "Test" }); //error here
}
}
public class Serializer
{
public T Deserialize<T>(string value) where T : new()
{
return new T();
}
}
public class SerializeObject
{
}
【问题讨论】:
-
我会尝试先将字符串存储在一个变量中,然后再调用该方法(即用字符串变量名替换“Test”)忽略您是否已经尝试过。除此之外,我找不到任何大问题
标签: c# generics reflection