Inheritance: MethodReference
Example #1
0
 public override void ClearCache()
 {
     _method = null;
     _association = null;
 }
Example #2
0
 public override void LoadCache()
 {
     _method = Method;
     _association = Association;
 }
Example #3
0
 public override void LoadCache()
 {
     _reference = Reference;
 }
Example #4
0
 public MethodSemantics(MethodDefinition method, MetaDataMember association, MethodSemanticsAttributes attributes)
     : base(new MetaDataRow((uint)attributes, method.TableIndex, (uint)0))
 {
     this._method = method;
     this._association = association;
 }
Example #5
0
        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;
        }
Example #6
0
 public override void ClearCache()
 {
     _reference = null;
 }
Example #7
0
 public override void ClearCache()
 {
     _addmethod = null;
     _removemethod = null;
     _name = null;
     _eventType = null;
 }
Example #8
0
 public override void LoadCache()
 {
     _addmethod = AddMethod;
     _removemethod = RemoveMethod;
     _name = Name;
     _eventType = EventType;
 }
Example #9
0
 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;
 }
Example #11
0
        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;
            //}
        }
Example #12
0
 public override void LoadCache()
 {
     base.LoadCache();
     _getMethod = GetMethod;
     _setMethod = SetMethod;
     _name = Name;
     _propertySig = Signature;
 }
Example #13
0
 public override void ClearCache()
 {
     _getMethod = null;
     _setMethod = null;
     _name = null;
     _propertySig = null;
 }
Example #14
0
        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;
        }
Example #15
0
 public override void ClearCache()
 {
     addmethod = null;
     removemethod = null;
     name = null;
     eventType = null;
 }