Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Safar <marek.safar@gmail.com>2019-10-16 13:21:18 +0300
committerMarek Safar <marek.safar@gmail.com>2019-10-16 21:05:03 +0300
commitbe6f43c80e88ec0613c35714bac9c110d4012acb (patch)
treec20f4559f1f6d9b474c2292b578ff88f5504141c /mcs/class/referencesource
parentcd6e574b87b4746afa980165a52e0eb0a95be58e (diff)
[System] Add reflection dependency tracking
for built-in type converters
Diffstat (limited to 'mcs/class/referencesource')
-rw-r--r--mcs/class/referencesource/System/compmod/system/componentmodel/ReflectTypeDescriptionProvider.cs29
1 files changed, 29 insertions, 0 deletions
diff --git a/mcs/class/referencesource/System/compmod/system/componentmodel/ReflectTypeDescriptionProvider.cs b/mcs/class/referencesource/System/compmod/system/componentmodel/ReflectTypeDescriptionProvider.cs
index 0aa50d23fb2..fd57c1c3a73 100644
--- a/mcs/class/referencesource/System/compmod/system/componentmodel/ReflectTypeDescriptionProvider.cs
+++ b/mcs/class/referencesource/System/compmod/system/componentmodel/ReflectTypeDescriptionProvider.cs
@@ -107,6 +107,35 @@ namespace System.ComponentModel {
/// add attributes directly as metadata.
/// </devdoc>
private static Hashtable IntrinsicTypeConverters {
+ #if MONO
+ // TODO: typeof (BooleanConverter) would work better
+ [System.Runtime.CompilerServices.PreserveDependency (".ctor()", "System.ComponentModel.BooleanConverter")]
+ [System.Runtime.CompilerServices.PreserveDependency (".ctor()", "System.ComponentModel.ByteConverter")]
+ [System.Runtime.CompilerServices.PreserveDependency (".ctor()", "System.ComponentModel.SByteConverter")]
+ [System.Runtime.CompilerServices.PreserveDependency (".ctor()", "System.ComponentModel.CharConverter")]
+ [System.Runtime.CompilerServices.PreserveDependency (".ctor()", "System.ComponentModel.DoubleConverter")]
+ [System.Runtime.CompilerServices.PreserveDependency (".ctor()", "System.ComponentModel.StringConverter")]
+ [System.Runtime.CompilerServices.PreserveDependency (".ctor()", "System.ComponentModel.Int32Converter")]
+ [System.Runtime.CompilerServices.PreserveDependency (".ctor()", "System.ComponentModel.Int16Converter")]
+ [System.Runtime.CompilerServices.PreserveDependency (".ctor()", "System.ComponentModel.Int64Converter")]
+ [System.Runtime.CompilerServices.PreserveDependency (".ctor()", "System.ComponentModel.SingleConverter")]
+ [System.Runtime.CompilerServices.PreserveDependency (".ctor()", "System.ComponentModel.UInt16Converter")]
+ [System.Runtime.CompilerServices.PreserveDependency (".ctor()", "System.ComponentModel.UInt32Converter")]
+ [System.Runtime.CompilerServices.PreserveDependency (".ctor()", "System.ComponentModel.UInt16Converter")]
+ [System.Runtime.CompilerServices.PreserveDependency (".ctor()", "System.ComponentModel.TypeConverter")]
+ [System.Runtime.CompilerServices.PreserveDependency (".ctor()", "System.ComponentModel.CultureInfoConverter")]
+ [System.Runtime.CompilerServices.PreserveDependency (".ctor()", "System.ComponentModel.DateTimeConverter")]
+ [System.Runtime.CompilerServices.PreserveDependency (".ctor()", "System.ComponentModel.DateTimeOffsetConverter")]
+ [System.Runtime.CompilerServices.PreserveDependency (".ctor()", "System.ComponentModel.DecimalConverter")]
+ [System.Runtime.CompilerServices.PreserveDependency (".ctor()", "System.ComponentModel.TimeSpanConverter")]
+ [System.Runtime.CompilerServices.PreserveDependency (".ctor()", "System.ComponentModel.GuidConverter")]
+ [System.Runtime.CompilerServices.PreserveDependency (".ctor()", "System.ComponentModel.ArrayConverter")]
+ [System.Runtime.CompilerServices.PreserveDependency (".ctor()", "System.ComponentModel.CollectionConverter")]
+ [System.Runtime.CompilerServices.PreserveDependency (".ctor(System.Type)", "System.ComponentModel.EnumConverter")]
+ [System.Runtime.CompilerServices.PreserveDependency (".ctor(System.Type)", "System.ComponentModel.ReferenceConverter")]
+ [System.Runtime.CompilerServices.PreserveDependency (".ctor(System.Type)", "System.ComponentModel.NullableConverter")]
+ #endif
+
get {
// It is not worth taking a lock for this -- worst case of a collision
// would build two tables, one that garbage collects very quickly.