зеркало из https://github.com/CryptoPro/runtime.git
[release/5.0] Update dependencies from dotnet/arcade (#43321)
[release/5.0] Update dependencies from dotnet/arcade - Avoid upgrading min version SDK - Convert now-invalid C# in UnmanagedCallersOnly test to IL. - Too many Ls. Signed-off-by: Jeremy Koritzinsky <jekoritz@microsoft.com>
This commit is contained in:
Родитель
d90f149592
Коммит
be12034936
|
@ -10,61 +10,61 @@
|
||||||
</Dependency>
|
</Dependency>
|
||||||
</ProductDependencies>
|
</ProductDependencies>
|
||||||
<ToolsetDependencies>
|
<ToolsetDependencies>
|
||||||
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="5.0.0-beta.20506.7">
|
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="5.0.0-beta.20510.1">
|
||||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||||
<Sha>ee39cd1573dbb8011f343e1037af51d4fc00a747</Sha>
|
<Sha>6813f5aa511a7a4498fa217a54219b5704a01f83</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="5.0.0-beta.20506.7">
|
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="5.0.0-beta.20510.1">
|
||||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||||
<Sha>ee39cd1573dbb8011f343e1037af51d4fc00a747</Sha>
|
<Sha>6813f5aa511a7a4498fa217a54219b5704a01f83</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.DotNet.ApiCompat" Version="5.0.0-beta.20506.7">
|
<Dependency Name="Microsoft.DotNet.ApiCompat" Version="5.0.0-beta.20510.1">
|
||||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||||
<Sha>ee39cd1573dbb8011f343e1037af51d4fc00a747</Sha>
|
<Sha>6813f5aa511a7a4498fa217a54219b5704a01f83</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.DotNet.GenAPI" Version="5.0.0-beta.20506.7">
|
<Dependency Name="Microsoft.DotNet.GenAPI" Version="5.0.0-beta.20510.1">
|
||||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||||
<Sha>ee39cd1573dbb8011f343e1037af51d4fc00a747</Sha>
|
<Sha>6813f5aa511a7a4498fa217a54219b5704a01f83</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.DotNet.GenFacades" Version="5.0.0-beta.20506.7">
|
<Dependency Name="Microsoft.DotNet.GenFacades" Version="5.0.0-beta.20510.1">
|
||||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||||
<Sha>ee39cd1573dbb8011f343e1037af51d4fc00a747</Sha>
|
<Sha>6813f5aa511a7a4498fa217a54219b5704a01f83</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.DotNet.XUnitExtensions" Version="5.0.0-beta.20506.7">
|
<Dependency Name="Microsoft.DotNet.XUnitExtensions" Version="5.0.0-beta.20510.1">
|
||||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||||
<Sha>ee39cd1573dbb8011f343e1037af51d4fc00a747</Sha>
|
<Sha>6813f5aa511a7a4498fa217a54219b5704a01f83</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.DotNet.XUnitConsoleRunner" Version="2.5.1-beta.20506.7">
|
<Dependency Name="Microsoft.DotNet.XUnitConsoleRunner" Version="2.5.1-beta.20510.1">
|
||||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||||
<Sha>ee39cd1573dbb8011f343e1037af51d4fc00a747</Sha>
|
<Sha>6813f5aa511a7a4498fa217a54219b5704a01f83</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.DotNet.Build.Tasks.Packaging" Version="5.0.0-beta.20506.7">
|
<Dependency Name="Microsoft.DotNet.Build.Tasks.Packaging" Version="5.0.0-beta.20510.1">
|
||||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||||
<Sha>ee39cd1573dbb8011f343e1037af51d4fc00a747</Sha>
|
<Sha>6813f5aa511a7a4498fa217a54219b5704a01f83</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.DotNet.CodeAnalysis" Version="5.0.0-beta.20506.7">
|
<Dependency Name="Microsoft.DotNet.CodeAnalysis" Version="5.0.0-beta.20510.1">
|
||||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||||
<Sha>ee39cd1573dbb8011f343e1037af51d4fc00a747</Sha>
|
<Sha>6813f5aa511a7a4498fa217a54219b5704a01f83</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk" Version="5.0.0-beta.20506.7">
|
<Dependency Name="Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk" Version="5.0.0-beta.20510.1">
|
||||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||||
<Sha>ee39cd1573dbb8011f343e1037af51d4fc00a747</Sha>
|
<Sha>6813f5aa511a7a4498fa217a54219b5704a01f83</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.DotNet.RemoteExecutor" Version="5.0.0-beta.20506.7">
|
<Dependency Name="Microsoft.DotNet.RemoteExecutor" Version="5.0.0-beta.20510.1">
|
||||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||||
<Sha>ee39cd1573dbb8011f343e1037af51d4fc00a747</Sha>
|
<Sha>6813f5aa511a7a4498fa217a54219b5704a01f83</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.DotNet.Build.Tasks.Feed" Version="5.0.0-beta.20506.7">
|
<Dependency Name="Microsoft.DotNet.Build.Tasks.Feed" Version="5.0.0-beta.20510.1">
|
||||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||||
<Sha>ee39cd1573dbb8011f343e1037af51d4fc00a747</Sha>
|
<Sha>6813f5aa511a7a4498fa217a54219b5704a01f83</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.DotNet.VersionTools.Tasks" Version="5.0.0-beta.20506.7">
|
<Dependency Name="Microsoft.DotNet.VersionTools.Tasks" Version="5.0.0-beta.20510.1">
|
||||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||||
<Sha>ee39cd1573dbb8011f343e1037af51d4fc00a747</Sha>
|
<Sha>6813f5aa511a7a4498fa217a54219b5704a01f83</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk" Version="5.0.0-beta.20506.7">
|
<Dependency Name="Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk" Version="5.0.0-beta.20510.1">
|
||||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||||
<Sha>ee39cd1573dbb8011f343e1037af51d4fc00a747</Sha>
|
<Sha>6813f5aa511a7a4498fa217a54219b5704a01f83</Sha>
|
||||||
</Dependency>
|
</Dependency>
|
||||||
<Dependency Name="optimization.windows_nt-x64.IBC.CoreFx" Version="99.99.99-master-20200806.6">
|
<Dependency Name="optimization.windows_nt-x64.IBC.CoreFx" Version="99.99.99-master-20200806.6">
|
||||||
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-optimization</Uri>
|
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-optimization</Uri>
|
||||||
|
|
|
@ -48,16 +48,16 @@
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<!-- Arcade dependencies -->
|
<!-- Arcade dependencies -->
|
||||||
<MicrosoftDotNetApiCompatVersion>5.0.0-beta.20506.7</MicrosoftDotNetApiCompatVersion>
|
<MicrosoftDotNetApiCompatVersion>5.0.0-beta.20510.1</MicrosoftDotNetApiCompatVersion>
|
||||||
<MicrosoftDotNetBuildTasksFeedVersion>5.0.0-beta.20506.7</MicrosoftDotNetBuildTasksFeedVersion>
|
<MicrosoftDotNetBuildTasksFeedVersion>5.0.0-beta.20510.1</MicrosoftDotNetBuildTasksFeedVersion>
|
||||||
<MicrosoftDotNetCodeAnalysisVersion>5.0.0-beta.20506.7</MicrosoftDotNetCodeAnalysisVersion>
|
<MicrosoftDotNetCodeAnalysisVersion>5.0.0-beta.20510.1</MicrosoftDotNetCodeAnalysisVersion>
|
||||||
<MicrosoftDotNetGenAPIVersion>5.0.0-beta.20506.7</MicrosoftDotNetGenAPIVersion>
|
<MicrosoftDotNetGenAPIVersion>5.0.0-beta.20510.1</MicrosoftDotNetGenAPIVersion>
|
||||||
<MicrosoftDotNetGenFacadesVersion>5.0.0-beta.20506.7</MicrosoftDotNetGenFacadesVersion>
|
<MicrosoftDotNetGenFacadesVersion>5.0.0-beta.20510.1</MicrosoftDotNetGenFacadesVersion>
|
||||||
<MicrosoftDotNetXUnitExtensionsVersion>5.0.0-beta.20506.7</MicrosoftDotNetXUnitExtensionsVersion>
|
<MicrosoftDotNetXUnitExtensionsVersion>5.0.0-beta.20510.1</MicrosoftDotNetXUnitExtensionsVersion>
|
||||||
<MicrosoftDotNetXUnitConsoleRunnerVersion>2.5.1-beta.20506.7</MicrosoftDotNetXUnitConsoleRunnerVersion>
|
<MicrosoftDotNetXUnitConsoleRunnerVersion>2.5.1-beta.20510.1</MicrosoftDotNetXUnitConsoleRunnerVersion>
|
||||||
<MicrosoftDotNetBuildTasksPackagingVersion>5.0.0-beta.20506.7</MicrosoftDotNetBuildTasksPackagingVersion>
|
<MicrosoftDotNetBuildTasksPackagingVersion>5.0.0-beta.20510.1</MicrosoftDotNetBuildTasksPackagingVersion>
|
||||||
<MicrosoftDotNetRemoteExecutorVersion>5.0.0-beta.20506.7</MicrosoftDotNetRemoteExecutorVersion>
|
<MicrosoftDotNetRemoteExecutorVersion>5.0.0-beta.20510.1</MicrosoftDotNetRemoteExecutorVersion>
|
||||||
<MicrosoftDotNetVersionToolsTasksVersion>5.0.0-beta.20506.7</MicrosoftDotNetVersionToolsTasksVersion>
|
<MicrosoftDotNetVersionToolsTasksVersion>5.0.0-beta.20510.1</MicrosoftDotNetVersionToolsTasksVersion>
|
||||||
<!-- Installer dependencies -->
|
<!-- Installer dependencies -->
|
||||||
<MicrosoftNETCoreAppVersion>5.0.0-rc.1.20451.14</MicrosoftNETCoreAppVersion>
|
<MicrosoftNETCoreAppVersion>5.0.0-rc.1.20451.14</MicrosoftNETCoreAppVersion>
|
||||||
<MicrosoftNETCoreDotNetHostVersion>5.0.0-rc.1.20451.14</MicrosoftNETCoreDotNetHostVersion>
|
<MicrosoftNETCoreDotNetHostVersion>5.0.0-rc.1.20451.14</MicrosoftNETCoreDotNetHostVersion>
|
||||||
|
|
10
global.json
10
global.json
|
@ -5,17 +5,17 @@
|
||||||
"rollForward": "major"
|
"rollForward": "major"
|
||||||
},
|
},
|
||||||
"tools": {
|
"tools": {
|
||||||
"dotnet": "5.0.100-rc.1.20454.5"
|
"dotnet": "5.0.100-rc.2.20479.15"
|
||||||
},
|
},
|
||||||
"native-tools": {
|
"native-tools": {
|
||||||
"cmake": "3.14.5",
|
"cmake": "3.14.5",
|
||||||
"python3": "3.7.1"
|
"python3": "3.7.1"
|
||||||
},
|
},
|
||||||
"msbuild-sdks": {
|
"msbuild-sdks": {
|
||||||
"Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk": "5.0.0-beta.20506.7",
|
"Microsoft.DotNet.Build.Tasks.TargetFramework.Sdk": "5.0.0-beta.20510.1",
|
||||||
"Microsoft.DotNet.Arcade.Sdk": "5.0.0-beta.20506.7",
|
"Microsoft.DotNet.Arcade.Sdk": "5.0.0-beta.20510.1",
|
||||||
"Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk": "5.0.0-beta.20506.7",
|
"Microsoft.DotNet.Build.Tasks.SharedFramework.Sdk": "5.0.0-beta.20510.1",
|
||||||
"Microsoft.DotNet.Helix.Sdk": "5.0.0-beta.20506.7",
|
"Microsoft.DotNet.Helix.Sdk": "5.0.0-beta.20510.1",
|
||||||
"Microsoft.FIX-85B6-MERGE-9C38-CONFLICT": "1.0.0",
|
"Microsoft.FIX-85B6-MERGE-9C38-CONFLICT": "1.0.0",
|
||||||
"Microsoft.NET.Sdk.IL": "5.0.0-preview.8.20359.4",
|
"Microsoft.NET.Sdk.IL": "5.0.0-preview.8.20359.4",
|
||||||
"Microsoft.Build.NoTargets": "2.0.1",
|
"Microsoft.Build.NoTargets": "2.0.1",
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
.assembly InvalidCSharp { }
|
.assembly InvalidCSharp { }
|
||||||
|
|
||||||
.class public auto ansi beforefieldinit InvalidCSharp.GenericClass`1<T>
|
.class public auto ansi beforefieldinit InvalidCSharp.GenericClass`1<T>
|
||||||
extends System.Object
|
extends [System.Runtime]System.Object
|
||||||
{
|
{
|
||||||
.method public hidebysig static
|
.method public hidebysig static
|
||||||
void CallbackMethod (
|
void CallbackMethod (
|
||||||
|
@ -73,3 +73,93 @@
|
||||||
IL_0006: ret
|
IL_0006: ret
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.class public auto ansi beforefieldinit InvalidCSharp.CallingUnmanagedCallersOnlyDirectly
|
||||||
|
extends [System.Runtime]System.Object
|
||||||
|
{
|
||||||
|
.method public hidebysig specialname rtspecialname
|
||||||
|
instance void .ctor () cil managed
|
||||||
|
{
|
||||||
|
.maxstack 8
|
||||||
|
IL_0000: ldarg.0
|
||||||
|
IL_0001: call instance void [System.Runtime]System.Object::.ctor()
|
||||||
|
IL_0006: ret
|
||||||
|
}
|
||||||
|
|
||||||
|
.method public hidebysig static
|
||||||
|
int32 ManagedDoubleCallback (
|
||||||
|
int32 n
|
||||||
|
) cil managed
|
||||||
|
{
|
||||||
|
.custom instance void [System.Runtime.InteropServices]System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute::.ctor() = (
|
||||||
|
01 00 00 00
|
||||||
|
)
|
||||||
|
.maxstack 1
|
||||||
|
.locals init (
|
||||||
|
[0] int32
|
||||||
|
)
|
||||||
|
|
||||||
|
IL_0000: nop
|
||||||
|
IL_0001: ldarg.0
|
||||||
|
IL_0002: call int32 InvalidCSharp.CallingUnmanagedCallersOnlyDirectly::DoubleImpl(int32)
|
||||||
|
IL_0007: stloc.0
|
||||||
|
IL_0008: br.s IL_000a
|
||||||
|
|
||||||
|
IL_000a: ldloc.0
|
||||||
|
IL_000b: ret
|
||||||
|
}
|
||||||
|
|
||||||
|
.method private hidebysig static
|
||||||
|
int32 DoubleImpl (
|
||||||
|
int32 n
|
||||||
|
) cil managed
|
||||||
|
{
|
||||||
|
.maxstack 2
|
||||||
|
.locals init (
|
||||||
|
[0] int32
|
||||||
|
)
|
||||||
|
|
||||||
|
IL_0000: nop
|
||||||
|
IL_0001: ldc.i4.2
|
||||||
|
IL_0002: ldarg.0
|
||||||
|
IL_0003: mul
|
||||||
|
IL_0004: stloc.0
|
||||||
|
IL_0005: br.s IL_0007
|
||||||
|
|
||||||
|
IL_0007: ldloc.0
|
||||||
|
IL_0008: ret
|
||||||
|
}
|
||||||
|
|
||||||
|
.method public hidebysig static
|
||||||
|
class [System.Runtime]System.Func`2<int32, int32> GetDoubleDelegate () cil managed
|
||||||
|
{
|
||||||
|
.maxstack 8
|
||||||
|
|
||||||
|
IL_0000: ldnull
|
||||||
|
IL_0001: ldftn int32 InvalidCSharp.CallingUnmanagedCallersOnlyDirectly::ManagedDoubleCallback(int32)
|
||||||
|
IL_0007: newobj instance void class [System.Runtime]System.Func`2<int32, int32>::.ctor(object, native int)
|
||||||
|
IL_000c: ret
|
||||||
|
}
|
||||||
|
|
||||||
|
.method public hidebysig static pinvokeimpl("UnmanagedCallersOnlyDll" as "DoesntExist" winapi)
|
||||||
|
int32 PInvokeMarkedWithUnmanagedCallersOnly (
|
||||||
|
int32 n
|
||||||
|
) cil managed preservesig
|
||||||
|
{
|
||||||
|
.custom instance void [System.Runtime.InteropServices]System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute::.ctor() = (
|
||||||
|
01 00 00 00
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
.method public hidebysig static
|
||||||
|
int32 CallPInvokeMarkedWithUnmanagedCallersOnly (
|
||||||
|
int32 n
|
||||||
|
) cil managed
|
||||||
|
{
|
||||||
|
.maxstack 1
|
||||||
|
|
||||||
|
ldarg.0
|
||||||
|
call int32 InvalidCSharp.CallingUnmanagedCallersOnlyDirectly::PInvokeMarkedWithUnmanagedCallersOnly(int32)
|
||||||
|
ret
|
||||||
|
}
|
||||||
|
}
|
|
@ -29,10 +29,6 @@ public class Program
|
||||||
[DllImport(nameof(UnmanagedCallersOnlyDll))]
|
[DllImport(nameof(UnmanagedCallersOnlyDll))]
|
||||||
// Returns -1 if exception was throw and caught.
|
// Returns -1 if exception was throw and caught.
|
||||||
public static extern int CallManagedProcCatchException(IntPtr callbackProc, int n);
|
public static extern int CallManagedProcCatchException(IntPtr callbackProc, int n);
|
||||||
|
|
||||||
[UnmanagedCallersOnly]
|
|
||||||
[DllImport(nameof(UnmanagedCallersOnlyDll), EntryPoint = "DoesntExist")]
|
|
||||||
public static extern int PInvokeMarkedWithUnmanagedCallersOnly(int n);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private const string InvalidCSharpAssemblyName = "InvalidCSharp";
|
private const string InvalidCSharpAssemblyName = "InvalidCSharp";
|
||||||
|
@ -49,6 +45,12 @@ public class Program
|
||||||
return asm.GetType("InvalidCSharp.GenericClass`1").MakeGenericType(typeof(int));
|
return asm.GetType("InvalidCSharp.GenericClass`1").MakeGenericType(typeof(int));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Type GetCallingUnmanagedCallersOnlyDirectlyType()
|
||||||
|
{
|
||||||
|
var asm = Assembly.Load(InvalidCSharpAssemblyName);
|
||||||
|
return asm.GetType("InvalidCSharp.CallingUnmanagedCallersOnlyDirectly");
|
||||||
|
}
|
||||||
|
|
||||||
private delegate int IntNativeMethodInvoker();
|
private delegate int IntNativeMethodInvoker();
|
||||||
private delegate void NativeMethodInvoker();
|
private delegate void NativeMethodInvoker();
|
||||||
|
|
||||||
|
@ -347,7 +349,7 @@ public class Program
|
||||||
// Local function to delay exception thrown during JIT
|
// Local function to delay exception thrown during JIT
|
||||||
void CallAsDelegate()
|
void CallAsDelegate()
|
||||||
{
|
{
|
||||||
Func<int, int> invoker = ManagedDoubleCallback;
|
Func<int, int> invoker = (Func<int, int>)GetCallingUnmanagedCallersOnlyDirectlyType().GetMethod("GetDoubleDelegate").Invoke(null, BindingFlags.DoNotWrapExceptions, null, null, null);
|
||||||
invoker(0);
|
invoker(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -716,10 +718,11 @@ public class Program
|
||||||
Console.WriteLine($"Running {nameof(TestPInvokeMarkedWithUnmanagedCallersOnly)}...");
|
Console.WriteLine($"Running {nameof(TestPInvokeMarkedWithUnmanagedCallersOnly)}...");
|
||||||
|
|
||||||
// Call P/Invoke directly
|
// Call P/Invoke directly
|
||||||
Assert.Throws<NotSupportedException>(() => UnmanagedCallersOnlyDll.PInvokeMarkedWithUnmanagedCallersOnly(0));
|
var pInvokeWrapperMethod = GetCallingUnmanagedCallersOnlyDirectlyType().GetMethod("CallPInvokeMarkedWithUnmanagedCallersOnly");
|
||||||
|
Assert.Throws<NotSupportedException>(() => pInvokeWrapperMethod.Invoke(null, BindingFlags.DoNotWrapExceptions, null, new[] { (object)0 }, null));
|
||||||
|
|
||||||
// Call P/Invoke via reflection
|
// Call P/Invoke via reflection
|
||||||
var method = typeof(UnmanagedCallersOnlyDll).GetMethod(nameof(UnmanagedCallersOnlyDll.PInvokeMarkedWithUnmanagedCallersOnly));
|
var method = GetCallingUnmanagedCallersOnlyDirectlyType().GetMethod("PInvokeMarkedWithUnmanagedCallersOnly");
|
||||||
Assert.Throws<NotSupportedException>(() => method.Invoke(null, BindingFlags.DoNotWrapExceptions, null, new[] { (object)0 }, null));
|
Assert.Throws<NotSupportedException>(() => method.Invoke(null, BindingFlags.DoNotWrapExceptions, null, new[] { (object)0 }, null));
|
||||||
|
|
||||||
// Call P/Invoke as a function pointer
|
// Call P/Invoke as a function pointer
|
||||||
|
@ -728,7 +731,7 @@ public class Program
|
||||||
{
|
{
|
||||||
.locals init (native int V_0)
|
.locals init (native int V_0)
|
||||||
IL_0000: nop
|
IL_0000: nop
|
||||||
IL_0001: ldftn int UnmanagedCallersOnlyDll.PInvokeMarkedWithUnmanagedCallersOnly(int32)
|
IL_0001: ldftn int InvalidCSharp.CallingUnmanagedCallersOnlyDirectly::PInvokeMarkedWithUnmanagedCallersOnly(int32)
|
||||||
IL_0007: stloc.0
|
IL_0007: stloc.0
|
||||||
|
|
||||||
IL_0008: ldc.i4 1234
|
IL_0008: ldc.i4 1234
|
||||||
|
|
Загрузка…
Ссылка в новой задаче