foreach (var filter in filters) { var filterType = typeof(Filters); var method = filterType.GetMethod(filter, BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Static); if (method != null) { var parameters = method.GetParameters(); Type paramType = parameters[0].ParameterType; value = (string)method.Invoke(null, new[] { value }); } }
我怎样才能投value来paramType?value是string,paramType很可能只是一个基本的类型一样int,string或者可能float。如果无法进行转换,我会抛出异常很酷。
value
paramType
string
int
float
您使用的所有类型都实现IConvertible。因此,您可以使用ChangeType。
IConvertible
ChangeType
value = Convert.ChangeType(method.Invoke(null, new[] { value }), paramType);