private DotNetFramework GetFramework()
        {
            var mscorlib = GetReferencedMscorlib();

            if (mscorlib != null)
            {
                return(DotNetFramework.GetByMscorlib(mscorlib));
            }
            else
            {
                return(DotNetFramework.Get(FrameworkType.MicrosoftNet, _module.FrameworkVersionMoniker));
            }
        }
        private void Load()
        {
            var image = _module.Image;

            if (image.GetAssemblyCount() == 0)
            {
                throw new AssemblyLoadException(string.Format(SR.AssemblyLoadError, _module.Location));
            }

            AssemblyRow row;

            image.GetAssembly(1, out row);

            _name    = image.GetString(row.Name);
            _culture = image.GetString(row.Locale);
            _processorArchitecture = (ProcessorArchitecture)((int)(row.Flags & AssemblyFlags.PA_Mask) >> (int)AssemblyFlags.PA_Shift);
            _version       = new Version(row.MajorVersion, row.MinorVersion, row.BuildNumber, row.RevisionNumber);
            _publicKey     = image.GetBlob(row.PublicKey);
            _hashAlgorithm = row.HashAlgId;
            _framework     = GetFramework();
        }