[IronPython] Type.GetType returns None
Michael Foord
fuzzyman at voidspace.org.uk
Sun Mar 11 15:35:09 CET 2007
J. Merrill wrote:
> Those aren't comparable statements. If you had passed "String" (in quotes) in your C# I think that would have worked, but "string" should not --
In the example I gave, 'string' was a variable name, not a literal. :-)
There are overloads that allow you to specify a case-insensitive search
as well by the way.
The trouble I have is that in IronPython 'Type.GetType("String")'
returns None. In fact all the following return None :
>>> Type.GetType("String")
>>> Type.GetType("int")
>>> Type.GetType("Int32")
Even when I move the 'Type.GetType' call into C# and then call it from
IronPython it still returns None - meaning it couldn't find the type I
was asking for. I don't understand why...
Adding the assembly qualifier (System.String) works - but they are used
without the qualifier in an MSDN example, which works when compiled as C#...
Using "some string".GetType() (with a string literal) works - but is a
little inconvenient.
Also - the C# examples use 'typeof(int)' and 'Type.GetType("int")'. To
make it work I've replaced these with 'Int32', which works but is
obviously not exactly the same...
Thanks
Fuzzyman
http://www.voidspace.org.uk/ironpython/
> the Type.GetType(string) overload is defined as a case-sensitive search, and in general wants an "assembly qualified name".
>
> http://msdn2.microsoft.com/en-us/library/system.type.assemblyqualifiedname.aspx
>
> Perhaps all would be fine in pure IP if you had just used Type.GetType(String) or String.GetType(); I'm away and not easily able to try it myself.
>
> I would guess that the cause is that Python's "string" type (lowercase without the quotes) is not the same as .Net's "String" type (mixed case without quotes).
>
> At 09:48 AM 3/10/2007, Michael Foord wrote
>
>> Michael Foord wrote:
>>
>>> Hello all,
>>>
>>> Why does "Type.GetType(string)" return None from IronPython ?
>>>
>>> I need to use it with names like "Console", "int" and "string" -
>>> fetching the .NET type objects. I guess this is because of the reflected
>>> types ? Do I have an alternative that will work ? (other than stub C#).
>>>
>>>
>> Interesting - even with the following C# called from IronPython it
>> returns None. The code I am translating is from the MSDN docs. Any clues ?
>>
>> namespace SimpleTest
>> {
>> public class SimpleTest
>> {
>> public static Type getType(string typename){
>> return Type.GetType(typename);
>> }
>> }
>>
>> Michael Foord
>> http://www.voidspace.org.uk/ironpython/
>>
>
>
> J. Merrill / Analytical Software Corp
>
>
> _______________________________________________
> 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