ASP.NET 2.0
I have web controls with their own event handlers that I need to
funnel into a central handler, eg
TypicalEvent( object sender, TypicalEventArgs e )
{
HandleEverything( sender , (EventArgs)e );
}
LinkEvent( object sender, LinkEventArgs e )
{
HandleEverything( sender , (EventArgs)e );
}
SpecialEvent( object sender, SpecialEventArgs e )
{
HandleEverything( sender , (EventArgs)e );
}
And the central event handler is
HandleEverything( object sender , EventArgs e )
{
}
Within "HandleEverything", I would like to know the original Type of
what is in EventArgs and then cast it to the proper Type, because if
it's TypicalEventArgs there is a Value property, if it is
LinkEventArgs there is an AnchorText property, etc.
How can I use Reflection (or Generics?) to "uncast" and use?
Thanks.
Walter Wang [MSFT] - 07 Jun 2007 06:26 GMT
Hi lucius,
I assume TypicalEventArgs/LinkEventArgs/SpecialEventArgs are all inherited
(directly or indirectly) from EventArgs. You can always use a child type
where a base type is needed without casting. A child type *is* always a
base type.
To cast a reference with base type to a child type, you need to explicitly
cast it, for example:
TypicalEventArgs e2 = (TypicalEventArgs) e;
Of course you need to determine if it's a TypicalEventArgs first:
if (e is TypicalEventArgs) {
TypicalEvent(sender, (TypicalEventArgs) e);
}
Hope this helps.
Sincerely,
Walter Wang (wawang@online.microsoft.com, remove 'online.')
Microsoft Online Community Support
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications. If you are using Outlook Express, please make sure you clear the
check box "Tools/Options/Read: Get 300 headers at a time" to see your reply
promptly.
Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
Walter Wang [MSFT] - 12 Jun 2007 04:04 GMT
Hi lucius,
If you see this, would you please reply here to let me know if you think
this issue is solved now? Thanks.
Regards,
Walter Wang (wawang@online.microsoft.com, remove 'online.')
Microsoft Online Community Support
==================================================
When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
lucius - 16 Jun 2007 18:58 GMT
Yes, the issue is solved. Thanks.