public override void ClearCache() { _method = null; _association = null; }
public override void LoadCache() { _method = Method; _association = Association; }
public override void LoadCache() { _reference = Reference; }
public MethodSemantics(MethodDefinition method, MetaDataMember association, MethodSemanticsAttributes attributes) : base(new MetaDataRow((uint)attributes, method.TableIndex, (uint)0)) { this._method = method; this._association = association; }
public VariableDefinition[] ReadVariableSignature(uint signature, MethodDefinition parentMethod) { VariableDefinition[] variables = null; using (BinaryReader reader = GetBlobReader(signature)) { byte local_sig = reader.ReadByte(); if (local_sig != 0x7) throw new ArgumentException("Signature doesn't refer to a valid local variable signature"); uint count = ReadCompressedUInt32(reader); if (count == 0) return null; variables = new VariableDefinition[count]; for (int i = 0; i < count; i++) variables[i] = new VariableDefinition(i, ReadTypeReference(reader, (ElementType)reader.ReadByte(), parentMethod)); } return variables; }
public override void ClearCache() { _reference = null; }
public override void ClearCache() { _addmethod = null; _removemethod = null; _name = null; _eventType = null; }
public override void LoadCache() { _addmethod = AddMethod; _removemethod = RemoveMethod; _name = Name; _eventType = EventType; }
private void UpdateMethodDef(Workspace workspace, MethodDefinition methodDef) { // rva updated later in another task. methodDef.MetaDataRow.Parts[3] = GetStringIndex(workspace, methodDef.Name); // TODO: blob. // param list updated by MetaDataBuilder class. }
public override void ClearCache() { getmethod = null; setmethod = null; name = null; propertySig = null; }
private void addMemberItem_Click(object sender, EventArgs e) { MethodDefinition methodDef = new MethodDefinition("test", MethodAttributes.Public | MethodAttributes.Static, 0, 0, 0); //methodDef.MetaDataRow = new MetaDataRow(new object[] { (uint)0, (uint)0, (uint)0, (uint)currentTablesHeap.NETHeader.StringsHeap.GetStringOffset("test"), (uint)0, (uint)0 }); methodDef.Attributes = MethodAttributes.Public | MethodAttributes.Static; methodDef.ImplementationAttributes = MethodImplAttributes.IL | MethodImplAttributes.Managed; currentTablesHeap.GetTable(MetaDataTableType.Method, true).AddMember(methodDef); //List<object> tablesLeft = new List<object>(); //for (int i = 0; i < 45; i++) // tablesLeft.Add((MetaDataTableType)i); //ComboboxDlg dlg = new ComboboxDlg("Select table to add.", "Add table", tablesLeft.ToArray()); //if (dlg.ShowDialog() == DialogResult.OK) //{ // currentTablesHeap.GetTable((MetaDataTableType)dlg.SelectedObject).AddMember((MetaDataMember)Activator.cr; //} }
public override void LoadCache() { base.LoadCache(); _getMethod = GetMethod; _setMethod = SetMethod; _name = Name; _propertySig = Signature; }
public override void ClearCache() { _getMethod = null; _setMethod = null; _name = null; _propertySig = null; }
public VariableDefinition[] ReadVariableSignature(uint signature, MethodDefinition parentMethod) { VariableDefinition[] variables = null; BlobSignatureReader reader; if (TryGetBlobReader(signature, parentMethod, out reader)) { using (reader) { reader.GenericContext = parentMethod; byte local_sig = reader.ReadByte(); if (local_sig != 0x7) throw new ArgumentException("Signature doesn't refer to a valid local variable signature"); uint count = NETGlobals.ReadCompressedUInt32(reader); if (count == 0) return null; variables = new VariableDefinition[count]; for (int i = 0; i < count; i++) variables[i] = new VariableDefinition(i, reader.ReadTypeReference()); } } return variables; }
public override void ClearCache() { addmethod = null; removemethod = null; name = null; eventType = null; }