[Kde-bindings] Qyoto: SIGNALS/SLOTS

Arno Rehn arno at arnorehn.de
Tue Dec 13 17:48:19 UTC 2005


Am Dienstag, 13. Dezember 2005 18:53 schrieb Richard Dale:
> On Monday 12 December 2005 20:05, Arno Rehn wrote:
> > Am Montag, 12. Dezember 2005 18:01 schrieb Richard Dale:
> > > 		// Which reflection method can be used to get the parent interface
> > > 		// of IQApplicationSignals, so it doesn't need to be hard coded
> > > 		// as IQObjectSignals like here?
> > > 		miSignal = typeof(IQObjectSignals).GetMethod("Destroyed");
> > > 		attributes = miSignal.GetCustomAttributes(typeof(Q_SIGNAL), false);
> > > 		if (attributes.Length > 0) {
> > > 			Q_SIGNAL signalAttr = (Q_SIGNAL) attributes[0];
> > > 			Console.WriteLine( "Q_SIGNAL signature: {0}", signalAttr.Signature
> > > ); }
> >
> > Try this:
> >
> >  		miSignal =
> > typeof(IQApplicationSignals).BaseType.GetMethod("Destroyed");	//with
> > 'BaseType' you get the first type that the current type is derived from
> >  		attributes = miSignal.GetCustomAttributes(typeof(Q_SIGNAL), false);
> >  		if (attributes.Length > 0) {
> >  			Q_SIGNAL signalAttr = (Q_SIGNAL) attributes[0];
> >  			Console.WriteLine( "Q_SIGNAL signature: {0}", signalAttr.Signature );
> >  		}
>
> I've just been trying this and I get a null returned by
> typeof(IQApplicationSignals).BaseType. Is that because interfaces can have
> more than one BaseType? Is there a BaseTypes attribute for interfaces that
> returns an Array of types?
That's funny, if you take 'string' instead of an interface it all goes well. 
And 'string' has multiple base types. Maybe this is because an interface 
isn't a real type. At least it isn't a real class, is it?

-- 
MfG
Arno Rehn
arno at arnorehn.de



More information about the Kde-bindings mailing list