Custom parameter types

To demonstrate how a custom type can be supported, we are going to create a converter for an arbitrary class.

public class Person
{
    public readonly string name;
    public readonly int age;

    public Person(string name, int age)
    {
        this.name = name;
        this.age = age;
    }
}

Converter methods

The way converters work, is by creating a method that takes in a string and return an actual value. Converter methods must return a non-primitive type, and they must only take 1 parameter of type ArgumentReader.

To mark a method as a converter method, simply place a [Converter] attribute on it.

[Converter]
public static Person PersonTypeConverter(ArgumentReader reader)
{
    
}

Note

The method doesn't have to be located within the type we're attempting to convert. These methods can be stored anywhere you prefer

Last updated