private static RuntimeAssemblyName CreateRuntimeAssemblyNameFromMetadata( MetadataReader reader, StringHandle name, Version version, StringHandle culture, BlobHandle publicKeyOrToken, AssemblyFlags assemblyFlags) { AssemblyNameFlags assemblyNameFlags = AssemblyNameFlags.None; if (0 != (assemblyFlags & AssemblyFlags.PublicKey)) { assemblyNameFlags |= AssemblyNameFlags.PublicKey; } if (0 != (assemblyFlags & AssemblyFlags.Retargetable)) { assemblyNameFlags |= AssemblyNameFlags.Retargetable; } int contentType = ((int)assemblyFlags) & 0x00000E00; assemblyNameFlags |= (AssemblyNameFlags)contentType; return(new RuntimeAssemblyName( name.GetString(reader), version, culture.GetString(reader), assemblyNameFlags, reader.GetBlobContent(publicKeyOrToken).ToArray() )); }
private static RuntimeAssemblyName CreateRuntimeAssemblyNameFromMetadata( MetadataReader reader, StringHandle name, Version version, StringHandle culture, BlobHandle publicKeyOrToken, AssemblyFlags assemblyFlags) { AssemblyNameFlags assemblyNameFlags = AssemblyNameFlags.None; if (0 != (assemblyFlags & AssemblyFlags.PublicKey)) { assemblyNameFlags |= AssemblyNameFlags.PublicKey; } if (0 != (assemblyFlags & AssemblyFlags.Retargetable)) { assemblyNameFlags |= AssemblyNameFlags.Retargetable; } int contentType = ((int)assemblyFlags) & 0x00000E00; assemblyNameFlags |= (AssemblyNameFlags)contentType; byte[] publicKeyOrTokenByteArray; if (!publicKeyOrToken.IsNil) { ImmutableArray <byte> publicKeyOrTokenBlob = reader.GetBlobContent(publicKeyOrToken); publicKeyOrTokenByteArray = new byte[publicKeyOrTokenBlob.Length]; publicKeyOrTokenBlob.CopyTo(publicKeyOrTokenByteArray); } else { publicKeyOrTokenByteArray = Array.Empty <byte>(); } string cultureName = culture.GetString(reader); if (!String.IsNullOrEmpty(cultureName)) { // Canonicalize spelling and force a CultureNotFoundException if not a valid culture CultureInfo cultureInfo = CultureInfo.GetCultureInfo(cultureName); cultureName = cultureInfo.Name; } return(new RuntimeAssemblyName( name.GetString(reader), version, cultureName, assemblyNameFlags, publicKeyOrTokenByteArray )); }
private static RuntimeAssemblyName CreateRuntimeAssemblyNameFromMetadata( MetadataReader reader, StringHandle name, Version version, StringHandle culture, BlobHandle publicKeyOrToken, AssemblyFlags assemblyFlags) { AssemblyNameFlags assemblyNameFlags = AssemblyNameFlags.None; if (0 != (assemblyFlags & AssemblyFlags.PublicKey)) { assemblyNameFlags |= AssemblyNameFlags.PublicKey; } if (0 != (assemblyFlags & AssemblyFlags.Retargetable)) { assemblyNameFlags |= AssemblyNameFlags.Retargetable; } int contentType = ((int)assemblyFlags) & 0x00000E00; assemblyNameFlags |= (AssemblyNameFlags)contentType; byte[] publicKeyOrTokenByteArray; if (!publicKeyOrToken.IsNil) { ImmutableArray <byte> publicKeyOrTokenBlob = reader.GetBlobContent(publicKeyOrToken); publicKeyOrTokenByteArray = new byte[publicKeyOrTokenBlob.Length]; publicKeyOrTokenBlob.CopyTo(publicKeyOrTokenByteArray); } else { publicKeyOrTokenByteArray = Array.Empty <byte>(); } return(new RuntimeAssemblyName( name.GetString(reader), version, culture.GetString(reader), assemblyNameFlags, publicKeyOrTokenByteArray )); }
private static RuntimeAssemblyName CreateRuntimeAssemblyNameFromMetadata( MetadataReader reader, StringHandle name, Version version, StringHandle culture, BlobHandle publicKeyOrToken, AssemblyFlags assemblyFlags) { AssemblyNameFlags assemblyNameFlags = AssemblyNameFlags.None; if (0 != (assemblyFlags & AssemblyFlags.PublicKey)) assemblyNameFlags |= AssemblyNameFlags.PublicKey; if (0 != (assemblyFlags & AssemblyFlags.Retargetable)) assemblyNameFlags |= AssemblyNameFlags.Retargetable; int contentType = ((int)assemblyFlags) & 0x00000E00; assemblyNameFlags |= (AssemblyNameFlags)contentType; return new RuntimeAssemblyName( name.GetString(reader), version, culture.GetString(reader), assemblyNameFlags, reader.GetBlobContent(publicKeyOrToken).ToArray() ); }
public int CompareTo(StringHandle that) { if (type == StringHandleType.UTF8 && that.type == StringHandleType.UTF8) return bufferReader.Compare(offset, length, that.offset, that.length); return string.Compare(GetString(), that.GetString(), StringComparison.Ordinal); }
private bool Equals2(StringHandle s2) { switch (s2.type) { case StringHandleType.UTF8: return Equals2(s2.offset, s2.length, s2.bufferReader); default: return Equals2(s2.GetString()); } }