Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 286303
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 12, 20262026-05-12T05:37:28+00:00 2026-05-12T05:37:28+00:00

After an interop call, I get back a COM object. I know this object

  • 0

After an interop call, I get back a COM object.
I know this object will be one of three possible COM classes (Class1, Class2, Class3), but do not know which one in runtime.

The reflection upon that object (interopObject.GetType()) returns the base RCW wrapper of System.__ComObject.

What I need is to set some properties on the object – Text1, Text2, … Text30 (actual names, btw :)), which exist in all three classes.

So, the question is, can I somehow get the runtime type of the object (this would solve my problem, but might be impossible, as the .net runtime might not have that info), or can I set a property of a COM object blindly

this is my current code, which fails:

for ( int i = 1; i <= 30; i++ )
{
  ProprertyInfo pi =interopObject.GetType().GetProperty("Text" +i.ToString()) 
  // this returns null for pi
  pi.GetSetMethod().Invoke(interopObject, new object[] { someValue });
}

Thanks to Marc, these three go in my permanent gimmicks collection:

private static object LateGetValue(object obj, string propertyName)
{
  return RuntimeHelpers.GetObjectValue(NewLateBinding.LateGet(obj, null,
            propertyName, new object[0], null, null, null));
}

private static void LateSetValue(object obj, string propertyName, object value)
{
  NewLateBinding.LateSet(obj, null, propertyName, new []{value}, null, null);
}

private static void LateCallMethod(object obj, string methodName)
{
  NewLateBinding.LateCall(obj, null, methodName, new object[0], null,
            null, null, true);
}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-12T05:37:28+00:00Added an answer on May 12, 2026 at 5:37 am

    In C# 4.0, dynamic would be ideal for this type of duck-typing.

    Until then, I wonder if VB.Net would be better, with Option Strict Off to allow late binding against object.

    Worst case: write it in VB.Net, then use reflector to write the C# for you ;-p

    Here’s an example, that requires a reference to Microsoft.VisualBasic.dll, but is fine in C#:

    public static object GetValue(object obj, string propertyName)
    {
        return RuntimeHelpers.GetObjectValue(NewLateBinding.LateGet(obj, null,
             propertyName, new object[0], null, null, null));
    }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 206k
  • Answers 206k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer Answering @Mark comments So basically, your object initialization would be:… May 12, 2026 at 9:14 pm
  • Editorial Team
    Editorial Team added an answer The following is functionally equivalent to what you seem to… May 12, 2026 at 9:14 pm
  • Editorial Team
    Editorial Team added an answer This is the problem because Haystack creates spelling suggestions based… May 12, 2026 at 9:14 pm

Related Questions

I have a simple problem that reads an Excel file (using interop) and fills
I need to return an array of initialized objects from VB6 into C# using
Whenever a user reports an error such as System.Runtime.InteropServices.SEHException - External component has thrown
I'm trying to learn how to use managed/unmanaged code interop, but I've hit a

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.