You can also just use the type like "System.String" to avoid having to create an instance of the type.
>>> import System >>> import clr >>> clr.GetClrType(System.String) <System.RuntimeType object at 0x000000000000002B [System.String]> -----Original Message----- From: users-boun...@lists.ironpython.com [mailto:users-boun...@lists.ironpython.com] On Behalf Of Dave Fugate Sent: Thursday, August 06, 2009 2:07 PM To: rob...@smallshire.org.uk; Discussion of IronPython; 'Michael Foord' Subject: Re: [IronPython] Reflection.Emit from IronPython: What is the equivalent of typeof() in C# ? Try: clr.GetClrType(type('')) David Fugate Microsoft - IronPython http://knowbody.livejournal.com -----Original Message----- From: users-boun...@lists.ironpython.com [mailto:users-boun...@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 > > rob...@smallshire.org.uk > > http://smallshire.org.uk/ > > Currently in Norway (UTC +2 hours) > > > > _______________________________________________ > > Users mailing list > > Users@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@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com _______________________________________________ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com _______________________________________________ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com