我正在反映具有以下签名的C ++ / CLI方法:
void foo(long n);
这转化为C#:
void foo(int modopt(IsLong) n);
如何通过反射查找 int 参数实际上是否是C ++ / CLI?
答案 0 :(得分:1)
检查ParameterInfo
实例的可选自定义修改器:
bool IsLongParameter(System.Reflection.ParameterInfo p) {
Type[] modifiers = p.GetOptionalCustomModifiers();
return modifiers.Contains(typeof(System.Runtime.CompilerServices.IsLong));
}