Updates referencesource to .NET 4.7
[mono.git] / mcs / class / referencesource / System.ServiceModel / System / ServiceModel / Configuration / DataContractSerializerElement.cs
1 //------------------------------------------------------------------------------
2 // Copyright (c) Microsoft Corporation.  All rights reserved.
3 //------------------------------------------------------------------------------
4
5 namespace System.ServiceModel.Configuration
6 {
7     using System.ComponentModel;
8     using System.Configuration;
9     using System.Globalization;
10     using System.Net.Security;
11     using System.ServiceModel.Security;
12     using System.ServiceModel.Dispatcher;
13     using System.ServiceModel.Description;
14
15     public sealed partial class DataContractSerializerElement : BehaviorExtensionElement
16     {
17         public DataContractSerializerElement()
18         {
19         }
20
21         [ConfigurationProperty(ConfigurationStrings.IgnoreExtensionDataObject, DefaultValue = DataContractSerializerDefaults.IgnoreExtensionDataObject)]
22         public bool IgnoreExtensionDataObject
23         {
24             get { return (bool)base[ConfigurationStrings.IgnoreExtensionDataObject]; }
25             set { base[ConfigurationStrings.IgnoreExtensionDataObject] = value; }
26         }
27
28         [ConfigurationProperty(ConfigurationStrings.MaxItemsInObjectGraph, DefaultValue = DataContractSerializerDefaults.MaxItemsInObjectGraph)]
29         [IntegerValidator(MinValue = 0)]
30         public int MaxItemsInObjectGraph
31         {
32             get { return (int)base[ConfigurationStrings.MaxItemsInObjectGraph]; }
33             set { base[ConfigurationStrings.MaxItemsInObjectGraph] = value; }
34         }
35
36         public override void CopyFrom(ServiceModelExtensionElement from)
37         {
38             base.CopyFrom(from);
39
40             DataContractSerializerElement source = (DataContractSerializerElement)from;
41 #pragma warning suppress 56506 //Microsoft; base.CopyFrom() checks for 'from' being null
42             this.IgnoreExtensionDataObject = source.IgnoreExtensionDataObject;
43             this.MaxItemsInObjectGraph = source.MaxItemsInObjectGraph;
44         }
45
46         protected internal override object CreateBehavior()
47         {
48             return new DataContractSerializerServiceBehavior(this.IgnoreExtensionDataObject, this.MaxItemsInObjectGraph);
49         }
50
51         public override Type BehaviorType
52         {
53             get { return typeof(DataContractSerializerServiceBehavior); }
54         }
55     }
56 }
57
58
59