Imported Upstream version 5.0.0.42

Former-commit-id: fd56571888259555122d8a0f58c68838229cea2b
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2017-04-10 11:41:01 +00:00
parent 1190d13a04
commit 6bdd276d05
19939 changed files with 3099680 additions and 93811 deletions

View File

@ -59,12 +59,16 @@ namespace System.Reflection {
#endif
{
internal class ResolveEventHolder {
#pragma warning disable 67
public event ModuleResolveEventHandler ModuleResolve;
#pragma warning restore
}
internal class UnmanagedMemoryStreamForModule : UnmanagedMemoryStream
{
#pragma warning disable 414
Module module;
#pragma warning restore
public unsafe UnmanagedMemoryStreamForModule (byte* pointer, long length, Module module)
: base (pointer, length)
@ -424,7 +428,7 @@ namespace System.Reflection {
internal extern Type InternalGetType (Module module, String name, Boolean throwOnError, Boolean ignoreCase);
[MethodImplAttribute (MethodImplOptions.InternalCall)]
internal extern static void InternalGetAssemblyName (string assemblyFile, AssemblyName aname);
internal extern unsafe static void InternalGetAssemblyName (string assemblyFile, out Mono.MonoAssemblyName aname, out string codebase);
public virtual AssemblyName GetName (Boolean copiedName)
{
@ -643,7 +647,7 @@ namespace System.Reflection {
return LoadFrom (assemblyFile, true);
}
[Obsolete]
[Obsolete("This method has been deprecated. Please use Assembly.Load() instead. http://go.microsoft.com/fwlink/?linkid=14202")]
public static Assembly LoadWithPartialName (string partialName)
{
return LoadWithPartialName (partialName, null);
@ -666,7 +670,7 @@ namespace System.Reflection {
[MethodImplAttribute (MethodImplOptions.InternalCall)]
private static extern Assembly load_with_partial_name (string name, Evidence e);
[Obsolete]
[Obsolete("This method has been deprecated. Please use Assembly.Load() instead. http://go.microsoft.com/fwlink/?linkid=14202")]
public static Assembly LoadWithPartialName (string partialName, Evidence securityEvidence)
{
return LoadWithPartialName (partialName, securityEvidence, true);
@ -750,7 +754,37 @@ namespace System.Reflection {
public extern static Assembly GetCallingAssembly ();
[MethodImplAttribute (MethodImplOptions.InternalCall)]
internal static extern AssemblyName[] GetReferencedAssemblies (Assembly module);
internal static extern IntPtr InternalGetReferencedAssemblies (Assembly module);
internal static AssemblyName[] GetReferencedAssemblies (Assembly module)
{
using (var nativeNames = new Mono.SafeGPtrArrayHandle (InternalGetReferencedAssemblies (module))) {
var numAssemblies = nativeNames.Length;
try {
AssemblyName [] result = new AssemblyName[numAssemblies];
const bool addVersion = true;
const bool addPublicKey = false;
const bool defaultToken = true;
const bool assemblyRef = true;
for (int i = 0; i < numAssemblies; i++) {
AssemblyName name = new AssemblyName ();
unsafe {
Mono.MonoAssemblyName *nativeName = (Mono.MonoAssemblyName*) nativeNames[i];
name.FillName (nativeName, null, addVersion, addPublicKey, defaultToken, assemblyRef);
result[i] = name;
}
}
return result;
} finally {
for (int i = 0; i < numAssemblies; i++) {
unsafe {
Mono.MonoAssemblyName* nativeName = (Mono.MonoAssemblyName*) nativeNames[i];
Mono.RuntimeMarshal.FreeAssemblyName (ref *nativeName, true);
}
}
}
}
}
[MethodImplAttribute (MethodImplOptions.InternalCall)]
private extern bool GetManifestResourceInfoInternal (String name, ManifestResourceInfo info);