メソッドがPinVokeを使用するかどうかを確認してください
-
12-12-2019 - |
質問
メソッドがPinvokeを使用しているかどうかを確認するのはどうしてもありますか? MethodBaseを使用してアセンブリ内のすべてのメソッドをループインしていますが、メソッドがPinVokeを使用しているかどうかを確認します。 これが私が使っているコードです:
foreach (MethodBase bases in mtd.GetType().GetMethods())
{
//check if the method is using pinvoke
}
.
も可能な場合もあれば、使用されているDLLと呼ばれる機能/エントリポイントを確認できる方法が可能ですか?
解決
メソッドが dllimportAttribute 。もしそうなら、それはPinVokeを使用しています。
foreach (MethodBase methodBase in mtd.GetType().GetMethods())
{
if (methodBase.CustomAttributes.Any(cad => cad.AttributeType == typeof(DllImportAttribute))
{
// Method is using PInvoke
}
}
. 他のヒント
この拡張方法を使用できます。
public static bool IsPinvoke(this MethodBase method)
{
return method.Attributes.HasFlag(MethodAttributes.PinvokeImpl);
}
. 所属していません StackOverflow