有没有办法检查ParameterInfo是否是集合?

我已经试过了:

ConstructorInfo[] constructorInfos = typeof(T).GetConstructors();
ConstructorInfo constructorInfo = constructorInfos[0];
ParameterInfo[] paramsVar = constructorInfo.GetParameters();
IEnumerable<ParameterInfo> collectionParams = paramsVar.Where(
    x => x.ParameterType.GetElementType() is ICollection);


但它不起作用。有任何想法吗?

最佳答案

尝试这个:

ConstructorInfo[] constructorInfos = typeof(T).GetConstructors();
ConstructorInfo constructorInfo = constructorInfos[0];
ParameterInfo[] paramsVar = constructorInfo.GetParameters();
IEnumerable<ParameterInfo> collectionParams = paramsVar.Where(
    x => typeof(ICollection).IsAssignableFrom(x.ParameterType));


(请注意,我已经删除了GetElementType调用并切换了typeof(ICollection)x.ParameterType

关于c# - 如何判断ParameterInfo类型是否为集合?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18275886/

10-15 03:51