Add ReferenceConverter entry to intrinsic type converters table (#39854)
authorSantiago Fernandez Madero <safern@microsoft.com>
Fri, 24 Jul 2020 06:13:07 +0000 (23:13 -0700)
committerGitHub <noreply@github.com>
Fri, 24 Jul 2020 06:13:07 +0000 (23:13 -0700)
* Add ReferenceConverter entry to intrinsic type converters table

* Add tests

src/libraries/System.ComponentModel.TypeConverter/src/System/ComponentModel/ReflectTypeDescriptionProvider.cs
src/libraries/System.ComponentModel.TypeConverter/tests/TypeDescriptorTests.cs

index ce355d1..5423539 100644 (file)
@@ -132,6 +132,7 @@ namespace System.ComponentModel
             [typeof(ICollection)] = typeof(CollectionConverter),
             [typeof(Enum)] = typeof(EnumConverter),
             [s_intrinsicNullableKey] = typeof(NullableConverter),
+            [s_intrinsicReferenceKey] = typeof(ReferenceConverter),
         });
 
         private static Hashtable PropertyCache => LazyInitializer.EnsureInitialized(ref s_propertyCache, () => new Hashtable());
index 60aeeed..16c67b7 100644 (file)
@@ -485,6 +485,7 @@ namespace System.ComponentModel.Tests
         [InlineData(typeof(CultureInfo), typeof(CultureInfoConverter))]
         [InlineData(typeof(Version), typeof(VersionConverter))]
         [InlineData(typeof(IComponent), typeof(ComponentConverter))]
+        [InlineData(typeof(IFooComponent), typeof(ReferenceConverter))]
         public static void GetConverter(Type targetType, Type resultConverterType)
         {
             TypeConverter converter = TypeDescriptor.GetConverter(targetType);
@@ -1151,5 +1152,10 @@ namespace System.ComponentModel.Tests
             [Description("Derived")]
             public override int Value { get; set; }
         }
+
+        interface IFooComponent
+        {
+            bool Flag { get; set; }
+        }
     }
 }