private System.Runtime.CompilerServices.MethodImplOptions CreateMethodImplOptions(IMethodDefinition method)
        {
            // Some options are not exposed in portable contracts. PortingHelpers.cs exposes the missing constants.
            System.Runtime.CompilerServices.MethodImplOptions options = default(System.Runtime.CompilerServices.MethodImplOptions);
            if (method.IsUnmanaged)
            {
                options |= System.Runtime.CompilerServices.MethodImplOptionsEx.Unmanaged;
            }
            if (method.IsForwardReference)
            {
                options |= System.Runtime.CompilerServices.MethodImplOptionsEx.ForwardRef;
            }
            if (method.PreserveSignature)
            {
                options |= System.Runtime.CompilerServices.MethodImplOptions.PreserveSig;
            }
            if (method.IsRuntimeInternal)
            {
                options |= System.Runtime.CompilerServices.MethodImplOptionsEx.InternalCall;
            }
            if (method.IsSynchronized)
            {
                options |= System.Runtime.CompilerServices.MethodImplOptionsEx.Synchronized;
            }
            if (method.IsNeverInlined)
            {
                options |= System.Runtime.CompilerServices.MethodImplOptions.NoInlining;
            }
            if (method.IsAggressivelyInlined)
            {
                options |= System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining;
            }
            if (method.IsNeverOptimized)
            {
                options |= System.Runtime.CompilerServices.MethodImplOptions.NoOptimization;
            }

            return(options);
        }
예제 #2
0
 public MethodImplAttribute(System.Runtime.CompilerServices.MethodImplOptions methodImplOptions)
 {
 }