VBUC Documentation | Mobilize.Net
Mobilize.NetForumsBlogDocumentation Home
  • Mobilize.Net VBUC
  • Introduction
  • Install and Licenses
  • Get Started
  • Migration Guide
  • VBUC Features
  • Mappings Grammar
  • Generated Code
  • Upgrade Options
    • Data Access
    • Grids
    • Microsoft
    • Sheridan
    • Others
    • Code Conversion
    • C# Features
  • Third-party controls
  • Best Practices
  • EWIs
    • Warnings
    • Issues
    • ToDos
    • Notes
  • Issues and Troubleshooting
    • Microsoft.VisualBasic Uses
    • Safe and Unsafe Methods Layer
    • Third Party Components
    • Migration Process
    • Classic ADO Conversion to ADO.NET
    • VB6 and .NET integer division
    • VB6 On Error Statements
    • Running a .NET Core application in a machine with no Visual Studio installed
    • Databases issues
    • Unsupported assemblies on .NET Core and .NET 5
    • Icon Extraction Issues
    • HTTPS sites are not loaded in Windows XP
    • Short-Circuit Boolean Logic in C#
    • Assessment Report Issue
  • Knowledge Base
    • FAQ
      • Does the VBUC support the Sheridan VB 6.0 controls suit?
      • How effective is the Visual Basic Upgrade Companion tool at converting an application's front end?
      • What controls does the Visual Basic Upgrade Companion tool supports?
      • How does the VBUC handle VB6 Collections?
      • Can the VBUC migrate intrinsic VB6 functions and libraries?
      • Where is the source code for the support (helper) classes used by the VBUC?
      • How does the VBUC convert ADO to ADO.NET?
      • Can the Visual Basic Upgrade Companion tool be customized?
      • What are Stubs?
    • How-To
      • App.Config and Database Access
      • Avoid reflection in Hot Paths
      • Convert ESRI ArcGIS Visual Basic 6.0 applications to .NET
      • Drag and Drop Conversion Steps
      • Inserting elements in a ListView
      • String vs StringBuilder
      • Word Automation in VB6 vs .NET
      • Configure default Factory Database provider
      • GetPrivateProfileString Windows API working in migrated code
      • Upgrade projects with shared files
  • Release Notes
Powered by GitBook
On this page

Was this helpful?

  1. Knowledge Base
  2. How-To

Avoid reflection in Hot Paths

In this section you can read about reflection and when it should be avoided.

Performance

Reflection allows to dynamically create an instance of a type, or get the type from an existing object and invoke its methods or access its fields and properties.

Reflection is very powerful but expensive.

Use reflection only when necessary, for example, when creating a COM object.

Activator.CreateInstance("MyCOMObject");

Avoid using it in performance-sensitive scenarios and hot paths. In these cases, try to use strong types and call the methods directly.

This method invokes the MyMethod method of the object myObject using reflection.

public string MyMethod(object myObject)
{
    return myObject.GetType().GetMethod("MyMethod").
            Invoke(myObject,null).ToString();
}

In this case, the type MyClass is known so it replaces the object and the MyMethod method can be called directly.

public string MyMethod(MyClass myObject)
{
    return myObject.MyMethod();
}
PreviousApp.Config and Database AccessNextConvert ESRI ArcGIS Visual Basic 6.0 applications to .NET

Last updated 4 years ago

Was this helpful?