public virtual AssemblyNameReference ImportReference(AssemblyNameReference name) { Mixin.CheckName(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); }
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); }