PC Review


Reply
Thread Tools Rate Thread

Catching CProjectEngineEvents using reflection?

 
 
Arccos
Guest
Posts: n/a
 
      6th Apr 2009
I'm writting an addin and I need to catch events from VCProjectEngine. I know
how to do this without reflection:

....
VCprojectEngineEvents eventsVCEngine= (VCProjectEngineEvents)
dte.Events.GetObject("VCProjectEngineEventsObject");
eventsVCEngine.ItemAdded += new
_dispVCProjectEngineEvents_ItemAddedEventHandler(some_method);
....

And this works fine. However, my addin must work both for VS2005 and VS2008,
so I need to rewrite this code using reflection (which I think is the only
way). And that's what I fail to do. My code is (simplified):

....
Assembly asm = Assembly.LoadFrom(@"C:\Program Files\Microsoft Visual Studio
8\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.VCProjectEngine.dll");

Type eventsDelegateType =
asm.GetType("Microsoft.VisualStudio.VCProjectEngine._dispVCProjectEngineEvents_ItemAddedEventHandler");
Delegate eventsDelegate = Delegate.CreateDelegate(eventsDelegateType, this,
"some_method", true);

Object eventsObject = dte.Events.GetObject("VCProjectEngineEventsObject");
eventsObject.GetType().InvokeMember("ItemAdded", BindingFlags.InvokeMethod,
null, eventsObject, new object[] { eventsDelegate });
....



No matter what I do I always get "Unknown name (DISP_E_UNKNOWNNAME)"
exception in the last row. I tried "add_ItemAdded" (and other rather
desperate names), different BindingFlags, etc - but no luck. Tested in
VS2005, of course.

Maybe I'm doing something totally wrong, but I gave up. Could anyone help?

 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Is BTX catching on? Phisherman DIY PC 9 21st Aug 2004 04:46 PM
Reflection: Executing event code via reflection Shawn Hogan Microsoft VB .NET 0 13th May 2004 06:54 PM
Reflection: Executing event code via reflection Shawn Hogan Microsoft Dot NET Framework 0 12th May 2004 05:58 PM
Reflection Help: Copying data between objects using reflection Joe Bloggs Microsoft C# .NET 2 25th Mar 2004 09:58 AM
Catching FileNotFoundException Kevin Burton Microsoft Dot NET Framework 7 1st Oct 2003 09:50 AM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 07:03 PM.