InterpolationFormatProvider 2.0.0

A format provider for string.format that can use dictionary keys or property names as formats i.e "{0:Username} joined on {0:JoinDate:D}" produces "John Doe joined on Thursday, October 22, 2014"

Install-Package InterpolationFormatProvider -Version 2.0.0
dotnet add package InterpolationFormatProvider --version 2.0.0
<PackageReference Include="InterpolationFormatProvider" Version="2.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add InterpolationFormatProvider --version 2.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: InterpolationFormatProvider, 2.0.0"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install InterpolationFormatProvider as a Cake Addin
#addin nuget:?package=InterpolationFormatProvider&version=2.0.0

// Install InterpolationFormatProvider as a Cake Tool
#tool nuget:?package=InterpolationFormatProvider&version=2.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Note that the namespace has changed with this version. From Grax to Grax32

Here is sample code demonstrating the provider with a POCO, an anonymous object, a dictionary, and an Expando object.

    using Grax32;

    [TestMethod]
    public void TestMulti()
    {
        var item0 = new TestThingy {SomeNum = 34, OtherNum = 55};
        var item1 = new {AnonValue = "xzy", AnonName = "Anon Obj"};
        var item2 = new Dictionary<string, string>() {{"mykey", "myvalue"}};
        dynamic item3 = new ExpandoObject();
        item3.ExpandoDate = new DateTime(2000, 1, 3);
        item3.Title = "Title";

        var result = string.Format(new InterpolationFormatProvider(),
            "{0:SomeNum}, {1:AnonValue}, {2:mykey}, {3:Title}",
            item0,
            item1,
            item2,
            item3);

        Assert.AreEqual("34, xzy, myvalue, Title", result);
    }

Note that the namespace has changed with this version. From Grax to Grax32

Here is sample code demonstrating the provider with a POCO, an anonymous object, a dictionary, and an Expando object.

    using Grax32;

    [TestMethod]
    public void TestMulti()
    {
        var item0 = new TestThingy {SomeNum = 34, OtherNum = 55};
        var item1 = new {AnonValue = "xzy", AnonName = "Anon Obj"};
        var item2 = new Dictionary<string, string>() {{"mykey", "myvalue"}};
        dynamic item3 = new ExpandoObject();
        item3.ExpandoDate = new DateTime(2000, 1, 3);
        item3.Title = "Title";

        var result = string.Format(new InterpolationFormatProvider(),
            "{0:SomeNum}, {1:AnonValue}, {2:mykey}, {3:Title}",
            item0,
            item1,
            item2,
            item3);

        Assert.AreEqual("34, xzy, myvalue, Title", result);
    }

Release Notes

Support for DotNet Core

  • .NETFramework 4.0

    • No dependencies.
  • .NETStandard 2.0

    • No dependencies.
  • .NETStandard 2.1

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
2.0.0 104 3/20/2021
1.1.0 1,465 11/8/2014
1.0.0 718 10/22/2014