using System;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.InteropServices;

namespace Sasa.QualityTools.DrFx.Tests.Violation.CSharp.Microsoft.Portability
{
    public static class Rule1901
    {
        public static bool IsSigned()
        {
            bool result = false;
            return StrongNameSignatureVerificationEx("", false, out result);
        }

        // このメソッドの引数 fForceVerification は CA1901:Parameter に違反しています。
        // このメソッドの戻り値は CA1901:Return に違反しています。
        [SuppressMessage("Microsoft.Design", "CA1060:MovePInvokesToNativeMethodsClass")]
        [SuppressMessage("Microsoft.Interoperability", "CA1414:MarkBooleanPInvokeArgumentsWithMarshalAs")]
        [DllImport("mscoree.dll", CharSet = CharSet.Unicode, SetLastError = true)]
        private static extern bool StrongNameSignatureVerificationEx(string wszFilePath, bool fForceVerification, out bool pfWasVerified);
    }
}
