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

Class ReflectionHelper

Provides utility methods for reflection-based operations including object cloning and field copying.

Inheritance
System.Object
ReflectionHelper
Inherited Members
System.Object.ToString()
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
Namespace: Telerik.WinControls
Assembly: Telerik.WinControls.dll

Syntax

public static class ReflectionHelper
Remarks

ReflectionHelper encapsulates common reflection-based functionality used throughout the Telerik WinControls framework for object manipulation, cloning, and field copying operations. It provides safe, efficient methods for copying object state while respecting serialization attributes and type constraints.

Key features include:

  • Shallow cloning of objects with automatic field copying
  • Selective field copying that respects NonSerialized attributes
  • Delegate field exclusion to prevent event handler copying issues
  • Integration with IRadCloneable interface for custom clone notifications
  • Type-safe generic methods for compile-time type checking

This class is essential for creating object copies in scenarios like property inheritance, theme copying, and control state duplication where manual field-by-field copying would be error-prone and maintenance-intensive.

Methods

Clone<T>(T)

Creates a new instance of the specified type and copies all compatible fields from the source object.

Declaration
public static T Clone<T>(T source)
    where T : class, new()
Parameters
T source

The source object to clone.

Returns
T

A new instance of type T with field values copied from the source object.

Type Parameters
T

The type to clone. Must be a class with a parameterless constructor.

Remarks

This method performs a shallow clone operation by:

  1. Creating a new instance using the parameterless constructor
  2. Copying all compatible fields using CopyFields<T>(T, T)
  3. Notifying the clone if it implements IRadCloneable

The cloned object shares references to the same objects as the source for reference-type fields. This is a shallow copy, not a deep clone of the object graph.

If the cloned object implements IRadCloneable, both OnFieldsCopied() and OnCloneComplete() methods are called to allow for custom initialization logic.

CopyFields<T>(T, T)

Copies all compatible fields from a source object to a target object using reflection.

Declaration
public static void CopyFields<T>(T target, T source)
    where T : class
Parameters
T target

The destination object that will receive the copied field values.

T source

The source object from which field values will be copied.

Type Parameters
T

The type of both source and target objects.

Remarks

This method performs a shallow copy of all instance fields (public and non-public) from the source to the target object, with the following exclusions:

  • Fields marked with the System.NonSerializedAttribute are skipped
  • Delegate-type fields are skipped to prevent event handler copying issues

Reference type fields are copied by reference, meaning both objects will share the same reference to complex objects. This is a shallow copy operation, not a deep clone.

If the target object implements IRadCloneable, the OnFieldsCopied() method is called after the field copying process completes, allowing for custom post-copy logic.

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.