internal virtual AssemblyNameReference ImportAssemblyName(AssemblyNameReference name) { AssemblyNameReference reference; if (module.TryGetAssemblyNameReference(name, out reference)) { return(reference); } reference = new AssemblyNameReference(name.Name, name.Version) { Culture = name.Culture, HashAlgorithm = name.HashAlgorithm, IsRetargetable = name.IsRetargetable, IsWindowsRuntime = name.IsWindowsRuntime, }; var pk_token = !name.PublicKeyToken.IsNullOrEmpty() ? new byte [name.PublicKeyToken.Length] : Empty <byte> .Array; if (pk_token.Length > 0) { Buffer.BlockCopy(name.PublicKeyToken, 0, pk_token, 0, pk_token.Length); } reference.PublicKeyToken = pk_token; module.AssemblyReferences.Add(reference); return(reference); }
AssemblyNameReference ImportScope(SR.Assembly assembly) { AssemblyNameReference scope; #if !SILVERLIGHT var name = assembly.GetName(); if (TryGetAssemblyNameReference(name, out scope)) { return(scope); } scope = new AssemblyNameReference(name.Name, name.Version) { Culture = name.CultureInfo.Name, PublicKeyToken = name.GetPublicKeyToken(), HashAlgorithm = (AssemblyHashAlgorithm)name.HashAlgorithm, }; module.AssemblyReferences.Add(scope); return(scope); #else var name = AssemblyNameReference.Parse(assembly.FullName); if (module.TryGetAssemblyNameReference(name, out scope)) { return(scope); } module.AssemblyReferences.Add(name); return(name); #endif }
static IMetadataScope GetMetadataScope(ModuleDefinition module, Type type_info) { if (string.IsNullOrEmpty(type_info.assembly)) { return(module.TypeSystem.CoreLibrary); } AssemblyNameReference match; var reference = AssemblyNameReference.Parse(type_info.assembly); return(module.TryGetAssemblyNameReference(reference, out match) ? match : reference); }
private static IMetadataScope GetMetadataScope(ModuleDefinition module, Type type_info) { if (string.IsNullOrEmpty(type_info.assembly)) { return(module.TypeSystem.CoreLibrary); } AssemblyNameReference assemblyNameReference = AssemblyNameReference.Parse(type_info.assembly); if (!module.TryGetAssemblyNameReference(assemblyNameReference, out AssemblyNameReference result)) { return(assemblyNameReference); } return(result); }
AssemblyNameReference ImportAssemblyName(AssemblyNameReference name) { AssemblyNameReference reference; if (module.TryGetAssemblyNameReference(name, out reference)) { return(reference); } // TA: Added for winrt support. TODO: check if this is still needed. if (name.Name == "mscorlib") { return((AssemblyNameReference)module.TypeSystem.CoreLibrary); } reference = new AssemblyNameReference(name.Name, name.Version) { Culture = name.Culture, HashAlgorithm = name.HashAlgorithm, IsRetargetable = name.IsRetargetable, IsWindowsRuntime = name.IsWindowsRuntime, }; var pk_token = !name.PublicKeyToken.IsNullOrEmpty() ? new byte [name.PublicKeyToken.Length] : Empty <byte> .Array; if (pk_token.Length > 0) { Buffer.BlockCopy(name.PublicKeyToken, 0, pk_token, 0, pk_token.Length); } reference.PublicKeyToken = pk_token; module.AssemblyReferences.Add(reference); return(reference); }
public virtual AssemblyNameReference ImportReference(AssemblyNameReference name) { Mixin.CheckName(name); if (module.TryGetAssemblyNameReference(name, out AssemblyNameReference assemblyNameReference)) { return(assemblyNameReference); } assemblyNameReference = new AssemblyNameReference(name.Name, name.Version) { Culture = name.Culture, HashAlgorithm = name.HashAlgorithm, IsRetargetable = name.IsRetargetable, IsWindowsRuntime = name.IsWindowsRuntime }; byte[] array = (!name.PublicKeyToken.IsNullOrEmpty()) ? new byte[name.PublicKeyToken.Length] : Empty <byte> .Array; if (array.Length != 0) { Buffer.BlockCopy(name.PublicKeyToken, 0, array, 0, array.Length); } assemblyNameReference.PublicKeyToken = array; module.AssemblyReferences.Add(assemblyNameReference); return(assemblyNameReference); }