Microsoft.AspNetCore.Mvc.Formatters.Xml.Extensions
8.0.0
dotnet add package Microsoft.AspNetCore.Mvc.Formatters.Xml.Extensions --version 8.0.0
NuGet\Install-Package Microsoft.AspNetCore.Mvc.Formatters.Xml.Extensions -Version 8.0.0
<PackageReference Include="Microsoft.AspNetCore.Mvc.Formatters.Xml.Extensions" Version="8.0.0" />
paket add Microsoft.AspNetCore.Mvc.Formatters.Xml.Extensions --version 8.0.0
#r "nuget: Microsoft.AspNetCore.Mvc.Formatters.Xml.Extensions, 8.0.0"
// Install Microsoft.AspNetCore.Mvc.Formatters.Xml.Extensions as a Cake Addin #addin nuget:?package=Microsoft.AspNetCore.Mvc.Formatters.Xml.Extensions&version=8.0.0 // Install Microsoft.AspNetCore.Mvc.Formatters.Xml.Extensions as a Cake Tool #tool nuget:?package=Microsoft.AspNetCore.Mvc.Formatters.Xml.Extensions&version=8.0.0
ASP.NET Core MVC Xml formatter extensions
Version 8.x.x : supports only NetCore 8.0
Version 7.x.x : supports only NetCore 7.0
Version 6.x.x : supports only NetCore 6.0
Nuget Package:
https://www.nuget.org/packages/Microsoft.AspNetCore.Mvc.Formatters.Xml.Extensions
ASP.NET Core MVC Xml formatter's extensions allow:
- ASP.NET MVC Core Web Application controller actions to control the Xml serialization type.
- Avoid the ObjectResult limitation to use only one type of MVC Xml serializer per ASP.NET MVC Core Web Application.
- Satisfy all possible Xml JAVA REST Web API and Xml .NET REST Web API communication scenarios.
XmlResult
An Action result which formats the given object as Xml.
- The XmlResult is the similar feature to JsonResult in the project "Microsoft.AspNetCore.Mvc.Formatters.Json".
- The property "XmlSerializerType" of the XmlResult defines which one of the MVC Xml formatters to use either XmlSerializer or DataContractSerializer.
- It allows to return Xml formatted response with using the HTTP Response Body.
"FromXmlBody"
Specifies an action parameter or property that should be bound with using the HTTP request Xml body.
- The FromBodyXmlAttribute is the similar attribute to FromBodyAttribute in the project "Microsoft.AspNetCore.Mvc".
- The property "XmlSerializerType" of the FromBodyXmlAttribute defines which one of the MVC Xml formatters to use either XmlSerializer or DataContractSerializer.
Example of using in the application:
Startup.cs
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
// "AddXmlFormaterExtensions()" initialize the Asp .Net Core MVC to use of XmlResult and FromXmlBody:
// - It adds the XmlSerializer and DataContractSerializer formatters to MVC.
// - It adds the XmlResult and FromXmlBody Extension to MVC.
services.AddMvc().AddXmlFormaterExtensions();
// or services.AddControllers().AddXmlFormaterExtensions().AddNewtonsoftJson();
}
XmlExtController.cs(Example):
/// <summary>
/// The Controller example of using of XmlResult and FromXmlBody.
/// It demonstrates how to define which of the Xml formatters DataContractSerializer
/// or/and XmlSerializer to use for input and output in the Web Application controller actions.
/// </summary>
[Route("api/[controller]")]
public class XmlExtController : Controller
{
// GET api/[controller]/xml
[HttpGet("xml")]
public ActionResult GetXmlObject()
{
object obj = new PurchaseOrder();
return new XmlResult(obj);
}
// GET api/[controller]/dcxml
[HttpGet("dcxml")]
public ActionResult GetDcXmlObject()
{
object obj = new PurchaseOrder();
return new XmlResult(obj) { XmlSerializerType = XmlSerializerType.DataContractSerializer };
}
// POST api/[controller]/xml
[HttpPost("xml")]
public void PostXml([FromXmlBody]PurchaseOrder value)
{
var x = value;
x.billTo.street += " 123";
}
// POST api/[controller]/dcxml
[HttpPost("dcxml")]
public void PostDcXml([FromXmlBody(XmlSerializerType = XmlSerializerType.DataContractSerializer)]PurchaseOrder value)
{
var x = value;
x.billTo.street += "No -10";
}
}
Where the Models:
[DataContract (Namespace ="http://puchase.Interface.org/Purchase.Order")]
public class PurchaseOrder
{
public PurchaseOrder()
{
billTo = new Address() { street = "Bill to Address" };
shipTo = new Address() { street = "Ship to Address" };
}
[DataMember]
public Address billTo;
[DataMember]
public Address shipTo;
}
[DataContract(Namespace = "http://puchase.Interface.org/Purchase.Order.Address")]
public class Address
{
[DataMember]
public string street;
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- No dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Microsoft.AspNetCore.Mvc.Formatters.Xml.Extensions:
Package | Downloads |
---|---|
EY.Common.NlogCoreLib
Package Description |
|
GraphQl.Extensions
GraphQl Extensions. Contains Xlsx output formatter, csv output formatter |
GitHub repositories
This package is not used by any popular GitHub repositories.
Released for Microsoft.AspNetCore.App 8.0.0