Table of Contents

Class ContractResolverExtensions

Namespace
Codebelt.Extensions.Newtonsoft.Json.Serialization
Assembly
Codebelt.Extensions.Newtonsoft.Json.dll

Extension methods for the Newtonsoft.Json.Serialization.IContractResolver interface.

public static class ContractResolverExtensions
Inheritance
ContractResolverExtensions

Examples

The following example resolves or provides a default naming strategy from a contract resolver.

using System;
using Codebelt.Extensions.Newtonsoft.Json.Serialization;
using Newtonsoft.Json.Serialization;

namespace Examples;

class ContractResolverExtensionsExample
{
    static void Main()
    {
        var resolver = new DefaultContractResolver();
        var namingStrategy = resolver.ResolveNamingStrategyOrDefault();

        Console.WriteLine($"Naming strategy type: {namingStrategy.GetType().Name}");
        var converted = namingStrategy.GetPropertyName("UserName", false);
        Console.WriteLine($"UserName converted to: {converted}");
    }
}

Methods

ResolveNamingStrategyOrDefault(IContractResolver)

Resolves the Newtonsoft.Json.Serialization.NamingStrategy from the specified contractResolver when possible; otherwise a default Newtonsoft.Json.Serialization.NamingStrategy implementation is provided based on context. Eg. for Newtonsoft.Json.Serialization.DefaultContractResolver an instance of Newtonsoft.Json.Serialization.DefaultNamingStrategy is returned; for all other cases an instance of Newtonsoft.Json.Serialization.CamelCaseNamingStrategy is returned.

public static NamingStrategy ResolveNamingStrategyOrDefault(this IContractResolver contractResolver)

Parameters

contractResolver IContractResolver

The Newtonsoft.Json.Serialization.IContractResolver to resolve a Newtonsoft.Json.Serialization.NamingStrategy from.

Returns

NamingStrategy

An instance of Newtonsoft.Json.Serialization.NamingStrategy.