Я ищу способ отфильтровать методы с модификатором unsafe
через отражение.Кажется, это не атрибут метода.
Есть ли способ?
РЕДАКТИРОВАТЬ: кажется, что эта информация отсутствует в метаданных, по крайней мере, яне могу видеть это в IL.Однако рефлектор показывает модификатор unsafe
в представлении C #.Любые идеи о том, как это сделать?
РЕДАКТИРОВАТЬ 2: Для моих нужд я закончил с проверкой, которая предполагает, что если один из параметров метода является указателем или тип возвращаемого значенияуказатель, тогда метод небезопасен.
public static bool IsUnsafe(this MethodInfo methodInfo)
{
if (HasUnsafeParameters(methodInfo))
{
return true;
}
return methodInfo.ReturnType.IsPointer;
}
private static bool HasUnsafeParameters(MethodBase methodBase)
{
var parameters = methodBase.GetParameters();
bool hasUnsafe = parameters.Any(p => p.ParameterType.IsPointer);
return hasUnsafe;
}
Это, конечно, не обрабатывает ситуацию, когда небезопасный блок выполняется внутри метода, но опять же, все, что меня интересует, это методподпись.
Спасибо!