[IronPython] FW: Reflection.Emit from IronPython: What is theequivalent of typeof() in C# ?

Robert Smallshire robert at smallshire.org.uk
Fri Aug 7 19:35:01 CEST 2009


Hi David,

> Try:
>     clr.GetClrType(type(''))

This still produces RuntimeType[] in the generated CIL :-(

Thanks for trying!
 
Rob
> 
> 
> 
> > 
> > 
> > David Fugate
> > Microsoft - IronPython
> > http://knowbody.livejournal.com
> > 
> > -----Original Message-----
> > From: users-bounces at lists.ironpython.com
> > [mailto:users-bounces at lists.ironpython.com] On Behalf Of 
> > Robert Smallshire
> > Sent: Thursday, August 06, 2009 1:53 PM
> > To: 'Michael Foord'; 'Discussion of IronPython'
> > Subject: Re: [IronPython] Reflection.Emit from IronPython: 
> > What is the equivalent of typeof() in C# ?
> > 
> > Hi Michael,
> > 
> > I'm afraid not:
> > 
> > >>> clr.GetClrType('')
> > TypeError: expected Type, got str
> > 
> > My hopes were momentarily raised when I discovered that your
> > otherwise very comprehensive book mentions typeof in the 
> > index (page 398) - but then I found that you only use it from C#.
> > 
> > Cheers,
> > 
> > Rob
> > 
> > >
> > > clr.GetClrType('') ? (on an instance of a string)
> > >
> > > Michael
> > >
> > > Robert Smallshire wrote:
> > > > Hello,
> > > >
> > > > I'm attempting to drive the Reflection.Emit API from
> > > IronPython. In C#
> > > > typical Reflection.Emit use makes use typeof(...) facility
> > > in C#, to
> > > > enable the determination of types without needing an
> > > instance of that
> > > > type.
> > > >
> > > > For example, to create an array of .NET CTS Strings in IL
> > > from C# one
> > > > might
> > > > do:
> > > >
> > > > generator.Emit(OpCodes.Newarr, typeof(string));
> > > >
> > > > where the second argument to Emit is the element type of
> > the array.
> > > >
> > > > I've tried various alternatives from IronPython, including
> > > >
> > > > generator.Emit(OpCodes.Newarr,
> > System.Type.GetType('System.String'))
> > > > generator.Emit(OpCodes.Newarr, str().GetType())
> > > > generator.Emit(OpCodes.Newarr, System.String().GetType()) 
> > > > generator.Emit(OpCodes.Newarr, clr.GetClrType(System.String))
> > > >
> > > > however, all of these result in RuntimeType[] rather than
> > > String[] in
> > > > the generated CIL.
> > > >
> > > > How do I get typeof(System.String) from IronPython?
> > > >
> > > > Rob
> > > >
> > > > Robert Smallshire
> > > > robert at smallshire.org.uk
> > > > http://smallshire.org.uk/
> > > > Currently in Norway (UTC +2 hours)
> > > >
> > > > _______________________________________________
> > > > Users mailing list
> > > > Users at lists.ironpython.com
> > > > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
> > > >
> > >
> > >
> > > --
> > > http://www.ironpythoninaction.com/
> > > http://www.voidspace.org.uk/blog
> > >
> > >
> > 
> > _______________________________________________
> > Users mailing list
> > Users at lists.ironpython.com
> > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
> > 
> 




More information about the Ironpython-users mailing list