Exemplo n.º 1
0
 public int RegisterEvent(EventInfo info, int type_id)
 {
     int num = this.AppVar();
     this[num].Name = info.Name;
     this[num].Level = type_id;
     this[num].Kind = MemberKind.Event;
     this[num].TypeId = this.RegisterType(info.EventHandlerType, false);
     EventObject m = new EventObject(this.scripter, num, type_id);
     m.Imported = true;
     m.Event_Info = info;
     this[num].Val = m;
     ClassObject val = (ClassObject) this[type_id].Val;
     val.AddMember(m);
     m.OwnerType = val.ImportedType;
     MethodInfo addMethod = info.GetAddMethod();
     if (addMethod != null)
     {
         m.AddId = this.RegisterMethod(addMethod, type_id);
         if (addMethod.IsPublic)
         {
             m.Modifiers.Add(Modifier.Public);
         }
         if (addMethod.IsStatic)
         {
             m.Modifiers.Add(Modifier.Static);
         }
     }
     MethodInfo removeMethod = info.GetRemoveMethod();
     if (removeMethod != null)
     {
         m.RemoveId = this.RegisterMethod(removeMethod, type_id);
         if (removeMethod.IsPublic)
         {
             m.Modifiers.Add(Modifier.Public);
         }
         if (removeMethod.IsStatic)
         {
             m.Modifiers.Add(Modifier.Static);
         }
     }
     return num;
 }
Exemplo n.º 2
0
 private void OperCreateEvent()
 {
     int num = this.r.arg1;
     int id = this.r.arg2;
     int res = this.r.res;
     ClassObject classObject = this.GetClassObject(id);
     bool upcase = this.GetUpcase();
     int nameIndex = this.symbol_table[num].NameIndex;
     if (classObject.GetMemberByNameIndex(nameIndex, upcase) != null)
     {
         string name = this.symbol_table[num].Name;
         this.scripter.CreateErrorObjectEx("CS0102. The class '{0}' already contains a definition for '{1}'.", new object[] { classObject.Name, name });
     }
     else
     {
         EventObject obj4 = new EventObject(this.scripter, num, id);
         obj4.PCodeLine = this.n;
         this.PutVal(num, obj4);
         classObject.AddMember(obj4);
         this.n++;
     }
 }