C# 如何判断ParameterInfo类型是否为集合?
是否有方法检查ParameterInfo是否为集合 我试过这个:C# 如何判断ParameterInfo类型是否为集合?,c#,icollection,gettype,parameterinfo,C#,Icollection,Gettype,Parameterinfo,是否有方法检查ParameterInfo是否为集合 我试过这个: ConstructorInfo[] constructorInfos = typeof(T).GetConstructors(); ConstructorInfo constructorInfo = constructorInfos[0]; ParameterInfo[] paramsVar = constructorInfo.GetParameters(); IEnumerable<ParameterInfo> co
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[]ConstructorInfo=typeofT.GetConstructors;
ConstructorInfo ConstructorInfo=ConstructorInfo[0];
ParameterInfo[]paramsVar=constructorInfo.GetParameters;
IEnumerable collectionParams=paramsVar.Where
x=>x.ParameterType.GetElementType.IsAssignableFromTypeOfCollection;
很容易混淆a.IsAssignableFromb和b.IsAssignableFroma
@BartoszKP拥有检查方法:
ConstructorInfo[]ConstructorInfo=typeofT.GetConstructors;
ConstructorInfo ConstructorInfo=ConstructorInfo[0];
ParameterInfo[]paramsVar=constructorInfo.GetParameters;
IEnumerable collectionParams=paramsVar.Where
x=>x.ParameterType.GetElementType.IsAssignableFromTypeOfCollection;
很容易混淆a.IsAssignableFromb和b.IsAssignableFroma
@BartoszKP拥有尝试以下方法:
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调用,并切换了TypeOfCollection和x.ParameterType。请尝试以下操作:
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调用,并切换了TypeOfCollection和x.ParameterType。。。我永远记不起a是从b到b的顺序。IsAssignableFroma@BartoszKP好了。。。我永远记不起a.IsAssignableFromb和b.IsAssignableFroma的顺序