skip navigation
  • Product Bundles

    DevCraft

    All Telerik .NET tools and Kendo UI JavaScript components in one package. Now enhanced with:

    • AI Coding Assistants
    • Embedded Reporting
    • Document Processing Libraries
    • SSO Account Sign-in

    Web

    Kendo UI UI for Angular UI for Vue UI for jQuery KendoReact UI for Blazor UI for ASP.NET Core UI for ASP.NET MVC UI for ASP.NET AJAX

    Mobile

    UI for .NET MAUI

    Document Management

    Telerik Document Processing

    Desktop

    UI for .NET MAUI UI for WinUI UI for WinForms UI for WPF

    Reporting

    Telerik Reporting Telerik Report Server

    Testing & Mocking

    Test Studio Telerik JustMock

    CMS

    Sitefinity

    AI Productivity Tools

    AI Coding Assistants

    UI/UX Tools

    ThemeBuilder Design System Kit Templates and Building Blocks

    Debugging

    Fiddler Fiddler Everywhere Fiddler Classic Fiddler Everywhere Reporter FiddlerCore

    Free Tools

    KendoReact Free VB.NET to C# Converter Testing Framework
    View all products
  • Overview
  • Demos
    • What's New
    • Roadmap
    • Release History
  • Support and Learning

    • Support and Learning Hub
    • First Steps
    • Docs
    • Demos
    • Virtual Classroom
    • Forums
    • Videos
    • Blogs
    • Accessibility
    • Submit a Ticket

    Productivity and Design Tools

    • Visual Studio Extensions
    • Visual Studio Templates
    • Embedded Reporting
  • Pricing
  • Shopping cart
    • Account Overview
    • Your Licenses
    • Downloads
    • Support Center
    • Forum Profile
    • Payment Methods
    • Edit Profile
    • Log out
  • Login
  • Contact Us
  • Try now

Interface IRadCloneable

Provides notifications during reflection-based cloning and field copying operations.

Inherited Members
System.ICloneable.Clone()
Namespace: Telerik.WinControls
Assembly: Telerik.WinControls.dll

Syntax

public interface IRadCloneable : ICloneable
Remarks

IRadCloneable extends the standard System.ICloneable interface to provide additional notifications during reflection-based operations performed by ReflectionHelper. This allows objects to perform custom initialization or cleanup logic during cloning processes.

Classes implementing this interface can:

  • React to field copying completion with OnFieldsCopied()
  • Perform final initialization with OnCloneComplete()
  • Handle custom logic that requires awareness of the cloning process

This interface is particularly useful for objects that need to reinitialize calculated properties, establish new event handlers, or perform other setup tasks after being cloned.

Methods

OnCloneComplete()

Called after a complete cloning operation has finished, including field copying and any intermediate notifications.

Declaration
void OnCloneComplete()
Remarks

This method is invoked by Clone<T>(T) as the final step in the cloning process, after all fields have been copied and OnFieldsCopied() has been called. Implementing classes can use this notification to:

  • Perform final initialization that requires all fields to be set
  • Establish connections or relationships with other objects
  • Execute validation logic on the complete cloned state
  • Initialize transient state that shouldn't be copied

This is the last method called during the clone operation, making it ideal for final setup tasks.

OnFieldsCopied()

Called after fields have been copied to this object during a reflection-based field copying operation.

Declaration
void OnFieldsCopied()
Remarks

This method is invoked by CopyFields<T>(T, T) after all compatible fields have been copied from a source object. Implementing classes can use this notification to:

  • Update calculated or derived properties
  • Reinitialize collections or event handlers
  • Perform validation or consistency checks
  • Execute any logic that depends on the complete field state

This method is called before OnCloneComplete() in clone operations, allowing for staged initialization logic.

Extension Methods

SvgExtentions.Traverse<T>(T, Func<T, IEnumerable<T>>)
SvgExtentions.TraverseDepthFirst<T>(T, Func<T, IEnumerable<T>>)
Getting Started
  • Install Now
  • Demos
  • Step-by-Step Tutorial
  • Sample Applications
  • SDK Samples
  • Visual Studio Extensions
Support Resources
  • Code Library
  • Knowledge Base
  • Videos
Community
  • Forums
  • Blogs
  • Feedback Portal
  • Document Processing Feedback Portal

Copyright © 2018 Progress Software Corporation and/or its subsidiaries or affiliates.
All Rights Reserved.

Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries. See Trademarks for appropriate markings.