C# 事件订阅服务器克隆

C# 事件订阅服务器克隆,c#,converter,propertygrid,cloning,C#,Converter,Propertygrid,Cloning,我想知道克隆一个对象并将事件订阅服务器重新连接到新克隆的对象的最佳方式 背景:我使用一个转换器,它可以将字符串转换为对象。该对象在转换器的上下文中是已知的,因此我只想获取该对象并复制属性值和事件调用列表: [TypeConverter(typeof(MyConverter))] class MyObject { public string prop1 { get; set; } public string prop2 { get; set; } public deleg

我想知道克隆一个对象并将事件订阅服务器重新连接到新克隆的对象的最佳方式

背景:我使用一个转换器,它可以将字符串转换为对象。该对象在转换器的上下文中是已知的,因此我只想获取该对象并复制属性值和事件调用列表:

[TypeConverter(typeof(MyConverter))]
class MyObject 
{
    public string prop1 { get; set; }
    public string prop2 { get; set; }
    public delegate void UpdateHandler(MyObject sender);
    public event UpdateHandler Updated;
}

class MyConverter(...) : ExpandableObjectConverter
{
    public override bool CanConvertFrom(...)
    public override object ConvertFrom(...) 
    {
        MyObject Copied = new MyObject();   
        Copied.prop1 = (value as string);
        Copied.prop2 = (value as string);

        // For easier understanding, let's assume I have access to the source
        // object by using the object named "Original":

        Copied.Updated += Original.???
    }

    return Copied;
}
那么,当我有权访问源对象时,是否有可能将其订阅服务器附加到复制对象事件

问候,,
Greg

您可以在原始的
类中定义一个函数,该函数提供
事件处理程序

原始类别:

然后从转换器调用以下命令:

Copied.Event = Original.GetInvocationList();
Copied.Event = Original.GetInvocationList();