为泛型方法指定动态类型

时间:2011-03-09 12:52:03

标签: c# generics

很抱歉,如果这是重复的,我找不到我想要的东西 - 似乎所有的一切都在谈论IList。

目前我正在调用方法并将类型作为泛型传递,它按预期工作但导致代码重复。我希望能够做到

Type.MakeGenericParameter()

但这需要一个参数。我正在调用泛型方法,而不是创建对象。通用方法不包含在通用对象中。

我怎样才能按照

的方式做点什么
Type desiredType = typeof(IPendingProduct);
...
Product.Save<desiredType>(instance);

提前致谢。

1 个答案:

答案 0 :(得分:0)

typeof(Product).GetMethod("Save").MakeGenericMethod(desiredType)
        .Invoke(null, new object[] {instance});

不好,是吗?

请注意,这也假设Save是公共+静态的,并且没有与重载的冲突。