开发者

How to Attach the Events of an Original Object to a Deep Copied Clone

开发者 https://www.devze.com 2023-01-22 12:26 出处:网络
Following up on my question yesterday to deepcopy an object with events in C# and attach the events of the original object t开发者_运维技巧o the Cloned copy is pretty easy, you just set the Event decl

Following up on my question yesterday to deepcopy an object with events in C# and attach the events of the original object t开发者_运维技巧o the Cloned copy is pretty easy, you just set the Event declaration in the Copy = the value in the original. Deep Clone when events are attached

How do you do this in VB.Net? (Using .Net 2)

I was hoping maybe there was something with reflection where you can examine what events are bound and somehow transfer those to the new object.


yes you can, and its not that difficult, but it seems there isint a whole lot of info on this, so great question.


Dim sourceObject As New FooBar
Dim destObject As New FooBar

AddHandler sourceObject.SomeEvent, AddressOf myFunc


Dim miHandler As FieldInfo = GetType(FooBar).GetField("SomeEvent", BindingFlags.Static Or BindingFlags.NonPublic Or BindingFlags.Instance)
Dim sourceDelegate As [Delegate] = miHandler.GetValue(sourceObject)

Dim addDelegate As [Delegate] = sourceDelegate.GetInvocationList().First() ' if its multicast, then you'll need to copy the lot

AddHandler destObject.SomeEvent, addDelegate

0

精彩评论

暂无评论...
验证码 换一张
取 消