如何知道C ++ / CLI反射参数是long还是int?

时间:2010-03-11 17:12:54

标签: .net reflection visual-c++ c++-cli

我正在反映具有以下签名的C ++ / CLI方法:

void foo(long n);

这转化为C#:

void foo(int modopt(IsLong) n);

如何通过反射查找 int 参数实际上是否是C ++ / CLI?

1 个答案:

答案 0 :(得分:1)

检查ParameterInfo实例的可选自定义修改器:

bool IsLongParameter(System.Reflection.ParameterInfo p) {
   Type[] modifiers = p.GetOptionalCustomModifiers();
   return modifiers.Contains(typeof(System.Runtime.CompilerServices.IsLong));
}