public void DebugEvents() { ClassWithEvent c = new ClassWithEvent(); c.DebugEvents("Yohoo", ".*"); c.RaiseEvent(); }
public void ShouldSerializeEmptyDelegateList() { var withEvent = new ClassWithEvent(); var target = new TransientClassWithMethod(); withEvent.Event += target.Method; SerializerClone(withEvent); }
public void ShouldOmitDelegateWithTransientTarget() { var withEvent = new ClassWithEvent(); var target1 = new TransientClassWithMethod(); var target2 = new CompanionToClassWithEvent(); withEvent.Event += target2.Method; withEvent.Event += target1.Method; var copy = SerializerClone(withEvent); copy.Invoke(); }
private void Events() { ClassWithEvent2 event2 = new ClassWithEvent2(); event2.Handler += Event2_Handler; event2.Handler += Event2_Handler2; event2.Handler1 += Event2_Handler1; event2.OnHandler(new EventArgs()); #region Implementation example Product myProduct = new Product(); myProduct.Name = "roue"; myProduct.Value = 15; myProduct.Stock.Number = 20; myProduct.Stock.Number = 5; myProduct.Stock.Number = 20; #endregion #region Events ClassWithEvent event1 = new ClassWithEvent(); event1.Changed += Event1_Changed; event1.Handler += Event1_Handler; event1.CustomClassAEvent += Event1_CustomClassAEvent; event1.CustomEventArg += Event1_CustomEventArg; event1.OnChanged(new EventArgs()); event1.OnHandler(new EventArgs()); event1.OnCustomClassAEvent(new ClassA()); CustomEventArgs args = new CustomEventArgs(); args.CurrentClass = this; args.Message = "Welcome from event"; args.Logger = new Logger("ClientViewModel", LogMode.CONSOLE, AlertMode.CONSOLE); event1.OnCustomEventArg(args); //ClassWithEvent event2 = new ClassWithEvent(); //event2.Changed += Event1_Changed; //event2.Handler += Event1_Handler; //event2.CustomClassAEvent += Event1_CustomClassAEvent; //event2.OnChanged(new EventArgs()); //event2.OnHandler(new EventArgs()); //event2.OnCustomClassAEvent(new ClassA()); //ClassWithEvent event3 = new ClassWithEvent(); //event3.Changed += Event1_Changed; //event3.Handler += Event1_Handler; //event3.CustomClassAEvent += Event1_CustomClassAEvent; //event3.OnChanged(new EventArgs()); //event3.OnHandler(new EventArgs()); //event3.OnCustomClassAEvent(new ClassA()); #endregion }
public void ShouldSerializeDelegateWithLambdaAttached() { var withEvent = new ClassWithEvent(); var companion = new ClassImplementingInterfaceForDelegate(); withEvent.Event += () => companion.Method(null); var pair = Tuple.Create(withEvent, companion); var copy = SerializerClone(pair); copy.Item1.Invoke(); Assert.AreEqual(true, copy.Item2.Invoked); }
public void ShouldSerializeDelegateWithTargetFromDifferentModule() { var withEvent = new ClassWithEvent(); var companion = new CompanionSecondModule(); withEvent.Event += companion.MethodAsExtension; var pair = Tuple.Create(withEvent, companion); var copy = SerializerClone(pair); copy.Item1.Invoke(); Assert.AreEqual(1, copy.Item2.Counter); }
public void ShouldSerializeEvent() { var withEvent = new ClassWithEvent(); var companion = new CompanionToClassWithEvent(); withEvent.Event += companion.Method; var pair = Tuple.Create(withEvent, companion); var copy = SerializerClone(pair); copy.Item1.Invoke(); Assert.AreEqual(1, copy.Item2.Counter); }
public void Ctor_FieldInfoMember_Success() { MemberInfo fieldInfo = typeof(ClassWithEvent).GetField(nameof(ClassWithEvent._field)); var propertyMap = new SubPropertyMap(fieldInfo); Assert.Same(fieldInfo, propertyMap.Member); var instance = new ClassWithEvent(); propertyMap.SetPropertyFactory(instance, 10); Assert.Equal(10, instance._field); }
public void Ctor_PropertyInfoMember_Success() { MemberInfo propertyInfo = typeof(ClassWithEvent).GetProperty(nameof(ClassWithEvent.Property)); var propertyMap = new SubPropertyMap(propertyInfo); Assert.Same(propertyInfo, propertyMap.Member); var instance = new ClassWithEvent(); propertyMap.SetPropertyFactory(instance, 10); Assert.Equal(10, instance.Property); }
public static void Main(string[] args) { var classWithEvent = new ClassWithEvent(); var eventInfo = typeof(ClassWithEvent).GetEvent("_event"); var methodInfo = typeof(ClassWithEvent).GetMethod("HelloSiarhei"); var handler = Delegate.CreateDelegate(eventInfo.EventHandlerType, classWithEvent, methodInfo); eventInfo.AddEventHandler(classWithEvent, handler); classWithEvent.Execute(); }
public static void Main() { //创建一个包含事件声明的类的对象 ClassWithEvent event_object = new ClassWithEvent(); //创建一个包含方法定义的类的对象 EventListener event_listener = new EventListener(event_object); // step4: firing event //发出事件 event_object.OnEvent(); Console.ReadLine(); }
public static void Test() { var objWithEvent = new ClassWithEvent(); var subscriber1 = new Subscriber(); var subscriber2 = new Subscriber(); objWithEvent.SomeEvent += subscriber1.SomeMethod; objWithEvent.SomeEvent += subscriber2.SomeMethod; Delegate[] eventInfo = objWithEvent.GetSomeEventInvocationList(); foreach (Delegate d in eventInfo) { Console.WriteLine("Target = {0}, Method = {1}", d.Target, d.Method.Name); } }
public void Ctor_FieldInfoMember_Success() { MemberInfo fieldInfo = typeof(ClassWithEvent).GetField(nameof(ClassWithEvent._field)); var map = new OneToOneMap <int>(new ColumnNameValueReader("Property")); var propertyMap = new ExcelPropertyMap(fieldInfo, map); Assert.Same(fieldInfo, propertyMap.Member); Assert.Same(map, propertyMap.Map); var instance = new ClassWithEvent(); propertyMap.SetValueFactory(instance, 10); Assert.Equal(10, instance._field); }
public void ShouldSerializeMulticastEvent() { var withEvent = new ClassWithEvent(); var companion1 = new CompanionToClassWithEvent(); withEvent.Event += companion1.Method; var companion2 = new CompanionToClassWithEvent(); withEvent.Event += companion2.Method; var triple = Tuple.Create(withEvent, companion1, companion2); var copy = SerializerClone(triple); copy.Item1.Invoke(); Assert.AreEqual(1, copy.Item2.Counter); Assert.AreEqual(1, copy.Item3.Counter); }
public override void Run() { var objectWithEvent = new ClassWithEvent(); var context = new Context(); context.DefineVariable("objectWithEvent").Assign(JSValue.Marshal(objectWithEvent)); context.Eval(@" function eventHandler(sender, eventArgs) { console.log(eventArgs.Text); } objectWithEvent.Event = eventHandler; objectWithEvent.FireEvent(""Hello, I'm event arg""); // Console: 'Hello, I'm event arg' objectWithEvent.add_Event(eventHandler); objectWithEvent.FireEvent(""Hello, I'm event arg""); // Console: 'Hello, I'm event arg' twice objectWithEvent.remove_Event(eventHandler); objectWithEvent.remove_Event(eventHandler); objectWithEvent.FireEvent(""Hello, I'm event arg""); // Console: <None> "); }
public EventListener(ClassWithEvent class_with_event) { // step3.1: linking event to event hanlder(s) class_with_event.EventHandler += new EventHandlerDelegate(fun1); class_with_event.EventHandler += fun2; }
public CallingClass() { m_classwithevent = new ClassWithEvent(); m_classwithevent.FinishedEventHandler += OnFinished; }