@@ -31,12 +31,14 @@ internal sealed class ClassDataContract : DataContract
31
31
32
32
private ClassDataContractCriticalHelper _helper ;
33
33
34
+ [ RequiresDynamicCode ( DataContract . SerializerAOTWarning ) ]
34
35
[ RequiresUnreferencedCode ( DataContract . SerializerTrimmerWarning ) ]
35
36
internal ClassDataContract ( Type type ) : base ( new ClassDataContractCriticalHelper ( type ) )
36
37
{
37
38
InitClassDataContract ( ) ;
38
39
}
39
40
41
+ [ RequiresDynamicCode ( DataContract . SerializerAOTWarning ) ]
40
42
[ RequiresUnreferencedCode ( DataContract . SerializerTrimmerWarning ) ]
41
43
private ClassDataContract ( Type type , XmlDictionaryString ns , string [ ] memberNames ) : base ( new ClassDataContractCriticalHelper ( type , ns , memberNames ) )
42
44
{
@@ -54,6 +56,7 @@ private void InitClassDataContract()
54
56
55
57
public override DataContract ? BaseContract
56
58
{
59
+ [ RequiresDynamicCode ( DataContract . SerializerAOTWarning ) ]
57
60
[ RequiresUnreferencedCode ( DataContract . SerializerTrimmerWarning ) ]
58
61
get => BaseClassContract ;
59
62
}
@@ -74,6 +77,7 @@ internal List<DataMember>? Members
74
77
75
78
internal XmlDictionaryString ? [ ] ? ChildElementNamespaces
76
79
{
80
+ [ RequiresDynamicCode ( DataContract . SerializerAOTWarning ) ]
77
81
[ RequiresUnreferencedCode ( DataContract . SerializerTrimmerWarning ) ]
78
82
get
79
83
{
@@ -109,6 +113,7 @@ internal XmlDictionaryString?[]? ChildElementNamespaces
109
113
110
114
public override DataContractDictionary ? KnownDataContracts
111
115
{
116
+ [ RequiresDynamicCode ( DataContract . SerializerAOTWarning ) ]
112
117
[ RequiresUnreferencedCode ( DataContract . SerializerTrimmerWarning ) ]
113
118
get => _helper . KnownDataContracts ;
114
119
internal set => _helper . KnownDataContracts = value ;
@@ -148,8 +153,13 @@ public override bool IsISerializable
148
153
}
149
154
150
155
private Func < object > ? _makeNewInstance ;
156
+
157
+ [ UnconditionalSuppressMessage ( "AOT Analysis" , "IL3050:RequiresDynamicCodeAttribute" ,
158
+ Justification = "Fields cannot be annotated, annotating the use instead" ) ]
151
159
private Func < object > MakeNewInstance => _makeNewInstance ??= FastInvokerBuilder . GetMakeNewInstanceFunc ( UnderlyingType ) ;
152
160
161
+
162
+ [ RequiresDynamicCode ( DataContract . SerializerAOTWarning ) ]
153
163
internal bool CreateNewInstanceViaDefaultConstructor ( [ NotNullWhen ( true ) ] out object ? obj )
154
164
{
155
165
ConstructorInfo ? ci = GetNonAttributedTypeConstructor ( ) ;
@@ -172,6 +182,7 @@ internal bool CreateNewInstanceViaDefaultConstructor([NotNullWhen(true)] out obj
172
182
return true ;
173
183
}
174
184
185
+ [ RequiresDynamicCode ( DataContract . SerializerAOTWarning ) ]
175
186
[ RequiresUnreferencedCode ( DataContract . SerializerTrimmerWarning ) ]
176
187
private XmlFormatClassWriterDelegate CreateXmlFormatWriterDelegate ( )
177
188
{
@@ -181,6 +192,7 @@ private XmlFormatClassWriterDelegate CreateXmlFormatWriterDelegate()
181
192
182
193
internal XmlFormatClassWriterDelegate XmlFormatWriterDelegate
183
194
{
195
+ [ RequiresDynamicCode ( DataContract . SerializerAOTWarning ) ]
184
196
[ RequiresUnreferencedCode ( DataContract . SerializerTrimmerWarning ) ]
185
197
get
186
198
{
@@ -200,6 +212,7 @@ internal XmlFormatClassWriterDelegate XmlFormatWriterDelegate
200
212
}
201
213
}
202
214
215
+ [ RequiresDynamicCode ( DataContract . SerializerAOTWarning ) ]
203
216
[ RequiresUnreferencedCode ( DataContract . SerializerTrimmerWarning ) ]
204
217
private XmlFormatClassReaderDelegate CreateXmlFormatReaderDelegate ( )
205
218
{
@@ -209,6 +222,7 @@ private XmlFormatClassReaderDelegate CreateXmlFormatReaderDelegate()
209
222
210
223
internal XmlFormatClassReaderDelegate XmlFormatReaderDelegate
211
224
{
225
+ [ RequiresDynamicCode ( DataContract . SerializerAOTWarning ) ]
212
226
[ RequiresUnreferencedCode ( DataContract . SerializerTrimmerWarning ) ]
213
227
get
214
228
{
@@ -232,6 +246,7 @@ internal XmlFormatClassReaderDelegate XmlFormatReaderDelegate
232
246
}
233
247
}
234
248
249
+ [ RequiresDynamicCode ( DataContract . SerializerAOTWarning ) ]
235
250
[ RequiresUnreferencedCode ( DataContract . SerializerTrimmerWarning ) ]
236
251
internal static ClassDataContract CreateClassDataContractForKeyValue ( Type type , XmlDictionaryString ns , string [ ] memberNames )
237
252
{
@@ -255,6 +270,7 @@ internal static void CheckAndAddMember(List<DataMember> members, DataMember memb
255
270
members . Add ( memberContract ) ;
256
271
}
257
272
273
+ [ RequiresDynamicCode ( DataContract . SerializerAOTWarning ) ]
258
274
[ RequiresUnreferencedCode ( DataContract . SerializerTrimmerWarning ) ]
259
275
internal static XmlDictionaryString ? GetChildNamespaceToDeclare ( DataContract dataContract , Type childType , XmlDictionary dictionary )
260
276
{
@@ -331,6 +347,7 @@ internal static bool IsNonAttributedTypeValidForSerialization(
331
347
type . GetConstructor ( BindingFlags . Instance | BindingFlags . NonPublic | BindingFlags . Public , Type . EmptyTypes ) != null ) ;
332
348
}
333
349
350
+ [ RequiresDynamicCode ( DataContract . SerializerAOTWarning ) ]
334
351
[ RequiresUnreferencedCode ( DataContract . SerializerTrimmerWarning ) ]
335
352
private XmlDictionaryString ? [ ] ? CreateChildElementNamespaces ( )
336
353
{
@@ -359,13 +376,15 @@ private void EnsureMethodsImported()
359
376
_helper . EnsureMethodsImported ( ) ;
360
377
}
361
378
379
+ [ RequiresDynamicCode ( DataContract . SerializerAOTWarning ) ]
362
380
[ RequiresUnreferencedCode ( DataContract . SerializerTrimmerWarning ) ]
363
381
internal override void WriteXmlValue ( XmlWriterDelegator xmlWriter , object obj , XmlObjectSerializerWriteContext ? context )
364
382
{
365
383
Debug . Assert ( context != null ) ;
366
384
XmlFormatWriterDelegate ( xmlWriter , obj , context , this ) ;
367
385
}
368
386
387
+ [ RequiresDynamicCode ( DataContract . SerializerAOTWarning ) ]
369
388
[ RequiresUnreferencedCode ( DataContract . SerializerTrimmerWarning ) ]
370
389
internal override object ? ReadXmlValue ( XmlReaderDelegator xmlReader , XmlObjectSerializerReadContext ? context )
371
390
{
@@ -604,6 +623,7 @@ private sealed class ClassDataContractCriticalHelper : DataContract.DataContract
604
623
internal XmlDictionaryString [ ] ? MemberNames ;
605
624
internal XmlDictionaryString [ ] ? MemberNamespaces ;
606
625
626
+ [ RequiresDynamicCode ( DataContract . SerializerAOTWarning ) ]
607
627
[ RequiresUnreferencedCode ( DataContract . SerializerTrimmerWarning ) ]
608
628
internal ClassDataContractCriticalHelper ( [ DynamicallyAccessedMembers ( DataContractPreserveMemberTypes ) ]
609
629
Type type ) : base ( type )
@@ -707,6 +727,7 @@ internal ClassDataContractCriticalHelper([DynamicallyAccessedMembers(DataContrac
707
727
EnsureMethodsImported ( ) ;
708
728
}
709
729
730
+ [ RequiresDynamicCode ( DataContract . SerializerAOTWarning ) ]
710
731
[ RequiresUnreferencedCode ( DataContract . SerializerTrimmerWarning ) ]
711
732
internal ClassDataContractCriticalHelper (
712
733
[ DynamicallyAccessedMembers ( DataContractPreserveMemberTypes ) ]
@@ -782,6 +803,7 @@ private void EnsureIsReferenceImported(Type type)
782
803
783
804
[ MemberNotNull ( nameof ( _members ) ) ]
784
805
[ MemberNotNull ( nameof ( Members ) ) ]
806
+ [ RequiresDynamicCode ( DataContract . SerializerAOTWarning ) ]
785
807
[ RequiresUnreferencedCode ( DataContract . SerializerTrimmerWarning ) ]
786
808
private void ImportDataMembers ( )
787
809
{
@@ -942,6 +964,7 @@ private void ImportDataMembers()
942
964
Debug . Assert ( Members != null ) ;
943
965
}
944
966
967
+ [ RequiresDynamicCode ( DataContract . SerializerAOTWarning ) ]
945
968
[ RequiresUnreferencedCode ( DataContract . SerializerTrimmerWarning ) ]
946
969
private static bool SetIfGetOnlyCollection ( DataMember memberContract , bool skipIfReadOnlyContract )
947
970
{
@@ -1016,6 +1039,7 @@ private void SetIfMembersHaveConflict(List<DataMember> members)
1016
1039
}
1017
1040
}
1018
1041
1042
+ [ RequiresDynamicCode ( DataContract . SerializerAOTWarning ) ]
1019
1043
[ RequiresUnreferencedCode ( DataContract . SerializerTrimmerWarning ) ]
1020
1044
private XmlQualifiedName GetXmlNameAndSetHasDataContract ( Type type )
1021
1045
{
@@ -1186,6 +1210,7 @@ internal MethodInfo? ExtensionDataSetMethod
1186
1210
1187
1211
internal override DataContractDictionary ? KnownDataContracts
1188
1212
{
1213
+ [ RequiresDynamicCode ( DataContract . SerializerAOTWarning ) ]
1189
1214
[ RequiresUnreferencedCode ( DataContract . SerializerTrimmerWarning ) ]
1190
1215
get
1191
1216
{
@@ -1289,6 +1314,7 @@ public int Compare(Member x, Member y)
1289
1314
}
1290
1315
}
1291
1316
1317
+ [ RequiresDynamicCode ( DataContract . SerializerAOTWarning ) ]
1292
1318
[ RequiresUnreferencedCode ( DataContract . SerializerTrimmerWarning ) ]
1293
1319
internal override DataContract BindGenericParameters ( DataContract [ ] paramContracts , Dictionary < DataContract , DataContract > ? boundContracts = null )
1294
1320
{
@@ -1357,6 +1383,8 @@ internal override DataContract BindGenericParameters(DataContract[] paramContrac
1357
1383
}
1358
1384
}
1359
1385
1386
+ [ UnconditionalSuppressMessage ( "AOT Analysis" , "IL3050:RequiresDynamicCode" ,
1387
+ Justification = "All ctor's required to create an instance of this type are marked with RequiresDynamicCode." ) ]
1360
1388
[ UnconditionalSuppressMessage ( "ReflectionAnalysis" , "IL2026:RequiresUnreferencedCode" ,
1361
1389
Justification = "All ctor's required to create an instance of this type are marked with RequiresUnreferencedCode." ) ]
1362
1390
internal override bool Equals ( object ? other , HashSet < DataContractPairKey > ? checkedContracts )
0 commit comments