[英]How to tell if ParameterInfo type is a collection?
有沒有辦法檢查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);
但它不起作用。 有任何想法嗎?
查看方法Type.IsAssignableFrom :
ConstructorInfo [] constructorInfos = typeof(T)。GetConstructors(); ConstructorInfo constructorInfo = constructorInfos [0]; ParameterInfo [] paramsVar = constructorInfo.GetParameters(); IEnumerable collectionParams = paramsVar.Where(x => x.ParameterType.GetElementType()。IsAssignableFrom(typeof(ICollection)));
很容易混淆a.IsAssignableFrom(b)
vs b.IsAssignableFrom(a)
!
@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
調用並切換了typeof(ICollection)
和x.ParameterType
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.