Bug 37747 - Type.GetType returns null when some blank Before the comma!
Summary: Type.GetType returns null when some blank Before the comma!
Alias: None
Product: Runtime
Classification: Mono
Component: Reflection (show other bugs)
Version: unspecified
Hardware: All All
: --- normal
Target Milestone: ---
Assignee: Aleksey Kliger
Depends on:
Reported: 2016-01-16 11:48 UTC by Codemonk
Modified: 2016-01-18 21:23 UTC (History)
2 users (show)

See Also:
Is this bug a regression?: ---
Last known good build:


Description Codemonk 2016-01-16 11:48:31 UTC
this class in assembly Codemonk.Test

public class MyGenericType<T1>where T1:new(){}

this class in assembly Codemonk.Demo

public class ParameterType{}

var t1=Type.GetType("Codemonk.Test.MyGenericType`1[[Codemonk.Test.ParameterType,Codemonk.Demo]] ,Codemonk.Test");
var t1=Type.GetType("Codemonk.Test.MyGenericType`1[[Codemonk.Test.ParameterType,Codemonk.Demo]],Codemonk.Test");

t1 is null
t2 is not null

use microsoft .net
all is not null
Comment 1 Aleksey Kliger 2016-01-18 21:23:27 UTC
Microsoft's parser has subtle behavior

If you consider 

    var t1 = Type.GetType("Codemonk.Demo.ParameterType ,Codemonk.Demo");
    var t2 = Type.GetType("Codemonk.Demo.ParameterType,Codemonk.Demo");

then .net also returns t1 is null and t2 isn't.

On the other hand

    var t1=Type.GetType("Codemonk.Test.MyGenericType`1[[Codemonk.Test.ParameterType ,Codemonk.Demo]],Codemonk.Test");
    var t2=Type.GetType("Codemonk.Test.MyGenericType`1[[Codemonk.Test.ParameterType,Codemonk.Demo]],Codemonk.Test");

returns non-null for both.

Note You need to log in before you can comment on or make changes to this bug.