Ejemplo n.º 1
0
        public void LoadData(CLIFile pFile)
        {
            int token = 0;

            if (pFile.ModuleTable.Length > ResolutionScopeTypeMax16BitRows ||
                pFile.ModuleRefTable.Length > ResolutionScopeTypeMax16BitRows ||
                pFile.AssemblyRefTable.Length > ResolutionScopeTypeMax16BitRows ||
                pFile.TypeRefTable.Length > ResolutionScopeTypeMax16BitRows)
            {
                token = pFile.ReadInt32();
            }
            else
            {
                token = pFile.ReadUInt16();
            }
            Type  = (ResolutionScopeType)(token & ResolutionScopeTypeMask);
            token = (token >> ResolutionScopeTypeBits) - 1;
            if (token >= 0)
            {
                switch (Type)
                {
                case ResolutionScopeType.Module: Module = pFile.ModuleTable[token]; break;

                case ResolutionScopeType.ModuleRef: ModuleRef = pFile.ModuleRefTable[token]; break;

                case ResolutionScopeType.AssemblyRef: AssemblyRef = pFile.AssemblyRefTable[token]; break;

                case ResolutionScopeType.TypeRef: TypeRef = pFile.TypeRefTable[token]; break;

                default: throw new BadImageFormatException("ResolutionScope Type");
                }
            }
        }
Ejemplo n.º 2
0
		public void LoadData(CLIFile pFile)
		{
			int token = 0;
			if (pFile.ModuleTable.Length > ResolutionScopeTypeMax16BitRows ||
				pFile.ModuleRefTable.Length > ResolutionScopeTypeMax16BitRows ||
				pFile.AssemblyRefTable.Length > ResolutionScopeTypeMax16BitRows ||
				pFile.TypeRefTable.Length > ResolutionScopeTypeMax16BitRows) token = pFile.ReadInt32();
			else token = pFile.ReadUInt16();
			Type = (ResolutionScopeType)(token & ResolutionScopeTypeMask);
			token = (token >> ResolutionScopeTypeBits) - 1;
			if (token >= 0)
			{
				switch (Type)
				{
					case ResolutionScopeType.Module: Module = pFile.ModuleTable[token]; break;
					case ResolutionScopeType.ModuleRef: ModuleRef = pFile.ModuleRefTable[token]; break;
					case ResolutionScopeType.AssemblyRef: AssemblyRef = pFile.AssemblyRefTable[token]; break;
					case ResolutionScopeType.TypeRef: TypeRef = pFile.TypeRefTable[token]; break;
					default: throw new BadImageFormatException("ResolutionScope Type");
				}
			}
		}