[EMAIL PROTECTED] wrote: > Cool! Thanks! > > Now, how can I get sure that the InnerException is a > XmlRpcFaultException or a XmlRpcMissedSomething?, I'm trying with this: > > } catch(TargetInvocationException e) { > if(e.InnerException.GetType().ToString() == > "CookComputing.XmlRpc.XmlRpcFaultException") { > Console.WriteLine("yes"); > } > > But I don't think it's the correct way/code, any suggestions?
You might want to take advantage of the fact that Type.InvokeMember actually performs virtual dispatch based on the runtime type of the object *AND* all of the parameters, IE, it performs double/triple/ntuple dispatch. That means the following will work the way you want it to: catch( TargetInvocationException e ) { Type t = this.GetType(); t.InvokeMember( "HandleException", BindingFlags.InvokeMethod | BindingFlags.Instance | BindingFlags.NonPublic, null, this, new object[]{ e } ); } // ... private void HandleException( CookComputing.XmlRpc.XmlRpcFaultException e ) { //... } private void HandleException( FooException e ) { //... } private void HandleException( Exception e ) { // called if there are no other matching signatures } Of course, it isn't particularly fast... -- Arild AnkhSVN: http://ankhsvn.tigris.org Blog: http://ankhsvn.com/blog IRC: irc://irc.freenode.net/ankhsvn "Weaseling out of things is good. It's what separates us from the other animals....except weasels." -- Homer Simpson _______________________________________________ Mono-list maillist - [EMAIL PROTECTED] http://lists.ximian.com/mailman/listinfo/mono-list