Table of Contents

Class YamlSerializationMvcOptionsSetup

Namespace
Codebelt.Extensions.AspNetCore.Mvc.Formatters.Text.Yaml
Assembly
Codebelt.Extensions.AspNetCore.Mvc.Formatters.Text.Yaml.dll

A ConfigureOptions<TOptions> implementation which will add the YAML serializer formatters to MvcOptions.

public class YamlSerializationMvcOptionsSetup : ConfigureOptions<MvcOptions>, IConfigureOptions<MvcOptions>
Inheritance
YamlSerializationMvcOptionsSetup
Implements
Inherited Members

Examples

The following example shows how to instantiate and use the YamlSerializationMvcOptionsSetup class to manually configure YAML input and output formatters on MvcOptions.

using System;
using System.Linq;
using Codebelt.Extensions.AspNetCore.Mvc.Formatters.Text.Yaml;
using Codebelt.Extensions.YamlDotNet.Formatters;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Options;

namespace ExampleNamespace;

class Program
{
    static void Main()
    {
        // Create default YamlFormatterOptions
        var formatterOptions = new OptionsWrapper<YamlFormatterOptions>(new YamlFormatterOptions());
        
        // Instantiate YamlSerializationMvcOptionsSetup with the options
        var setup = new YamlSerializationMvcOptionsSetup(formatterOptions);
        
        // Create a MvcOptions instance to be configured
        var mvcOptions = new MvcOptions();
        
        // Verify the initial state - no YAML formatters yet
        int initialInputCount = mvcOptions.InputFormatters.Count;
        int initialOutputCount = mvcOptions.OutputFormatters.Count;
        Console.WriteLine($"Before configuration:");
        Console.WriteLine($"  Input formatters: {initialInputCount}");
        Console.WriteLine($"  Output formatters: {initialOutputCount}");
        
        // Apply the configuration by calling the setup action
        setup.Configure(mvcOptions);
        
        // After configuration, YAML formatters are added to MvcOptions
        int afterInputCount = mvcOptions.InputFormatters.Count;
        int afterOutputCount = mvcOptions.OutputFormatters.Count;
        Console.WriteLine($"After YamlSerializationMvcOptionsSetup configuration:");
        Console.WriteLine($"  Input formatters: {afterInputCount}");
        Console.WriteLine($"  Output formatters: {afterOutputCount}");
        
        var hasYamlInput = mvcOptions.InputFormatters.OfType<YamlSerializationInputFormatter>().Any();
        var hasYamlOutput = mvcOptions.OutputFormatters.OfType<YamlSerializationOutputFormatter>().Any();
        Console.WriteLine($"  YAML input formatter added: {hasYamlInput}");
        Console.WriteLine($"  YAML output formatter added: {hasYamlOutput}");
    }
}

Constructors

YamlSerializationMvcOptionsSetup(IOptions<YamlFormatterOptions>)

public YamlSerializationMvcOptionsSetup(IOptions<YamlFormatterOptions> formatterOptions)

Parameters

formatterOptions IOptions<YamlFormatterOptions>