// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using Microsoft.AspNetCore.Mvc.ModelBinding.Metadata; using Microsoft.AspNetCore.Mvc.ModelBinding; using Microsoft.Extensions.Options; namespace Microsoft.AspNetCore.Mvc.Formatters.Xml.Internal { /// /// A implementation which will add the /// data contract serializer formatters to . /// public class MvcXmlDataContractSerializerMvcOptionsSetup : IConfigureOptions { /// /// Adds the data contract serializer formatters to . /// /// The . public void Configure(MvcOptions options) { options.ModelMetadataDetailsProviders.Add(new DataMemberRequiredBindingMetadataProvider()); options.OutputFormatters.Add(new XmlDataContractSerializerOutputFormatter()); options.InputFormatters.Add(new XmlDataContractSerializerInputFormatter(options)); options.ModelMetadataDetailsProviders.Add(new SuppressChildValidationMetadataProvider("System.Xml.Linq.XObject")); options.ModelMetadataDetailsProviders.Add(new SuppressChildValidationMetadataProvider("System.Xml.XmlNode")); } } }