public static string GetFullAssemblyName(this MetadataReader metadataReader, AssemblyDefinition assemblyDefinition)
        {
            var assemblyName = metadataReader.GetString(assemblyDefinition.Name);
            var culture = metadataReader.GetString(assemblyDefinition.Culture);
            if (string.IsNullOrEmpty(culture))
            {
                culture = "neutral";
            }

            var version = assemblyDefinition.Version;
            var publicKeyBytes = metadataReader.GetBlobBytes(assemblyDefinition.PublicKey);
            byte[] publicKeyTokenBytes = publicKeyBytes;
            string publicKeyToken = "null";
            if (publicKeyBytes.Length > 0)
            {
                publicKeyTokenBytes = CalculatePublicKeyToken(publicKeyBytes);
                publicKeyToken = Conversion.ByteArrayToHexString(publicKeyTokenBytes);
            }

            var fullAssemblyName = string.Format(
                "{0}, Version={1}, Culture={2}, PublicKeyToken={3}",
                assemblyName,
                version.ToString(),
                culture,
                publicKeyToken);
            return fullAssemblyName;
        }
        public static AssemblyName ReadAssemblyName(this SrmAssemblyDefinition assemblyDefinition,
                                                    MetadataReader reader)
        {
            var asmName = ReadAssemblyName(
                reader,
                assemblyDefinition.Name,
                assemblyDefinition.Version,
                assemblyDefinition.Culture);

            var publicKey = reader.GetBlobBytes(assemblyDefinition.PublicKey);

            if (publicKey != null)
            {
                asmName.SetPublicKey(publicKey);
            }

            return(asmName);
        }
        public static AssemblyReferenceInformation FormatAssemblyInfo(this MetadataReader metadataReader, AssemblyDefinition assemblyDefinition)
        {
            var name = metadataReader.GetString(assemblyDefinition.Name);

            return metadataReader.FormatAssemblyInfo(name, assemblyDefinition.Culture, assemblyDefinition.PublicKey, assemblyDefinition.Version);
        }
Exemple #4
0
 public EcmaAssembly(TypeSystemContext context, PEReader peReader, MetadataReader metadataReader)
     : base(context, peReader, metadataReader)
 {
     _assemblyDefinition = metadataReader.GetAssemblyDefinition();
 }