Beispiel #1
0
        public void DebugEvents()
        {
            ClassWithEvent c = new ClassWithEvent();
            c.DebugEvents("Yohoo", ".*");

            c.RaiseEvent();
        }
Beispiel #2
0
        public void ShouldSerializeEmptyDelegateList()
        {
            var withEvent = new ClassWithEvent();
            var target    = new TransientClassWithMethod();

            withEvent.Event += target.Method;
            SerializerClone(withEvent);
        }
Beispiel #3
0
        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();
        }
Beispiel #4
0
        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
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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);
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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();
        }
Beispiel #11
0
    public static void Main()
    {
        //创建一个包含事件声明的类的对象
        ClassWithEvent event_object = new ClassWithEvent();

        //创建一个包含方法定义的类的对象
        EventListener event_listener = new EventListener(event_object);

        // step4: firing event
        //发出事件
        event_object.OnEvent();

        Console.ReadLine();
    }
Beispiel #12
0
    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);
        }
    }
Beispiel #13
0
        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);
        }
Beispiel #14
0
        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);
        }
Beispiel #15
0
        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>
");
        }
Beispiel #16
0
 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;
 }
Beispiel #17
0
 public CallingClass()
 {
     m_classwithevent = new ClassWithEvent();
     m_classwithevent.FinishedEventHandler += OnFinished;
 }