Я отражаю метод C ++ / CLI, имеющий следующую подпись:
void foo(long n);
Это переводится на C # как:
void foo(int modopt(IsLong) n);
Как я могу определить, является ли параметр int на самом деле длинным C ++ / CLI по отражению?
Проверьте дополнительные пользовательские модификаторы экземпляра ParameterInfo:
ParameterInfo
bool IsLongParameter(System.Reflection.ParameterInfo p) { Type[] modifiers = p.GetOptionalCustomModifiers(); return modifiers.Contains(typeof(System.Runtime.CompilerServices.IsLong)); }