Writing your own plugin is very easy.

Just implement the IRandomizerPlugin<T> plugin.

The typeparameter T defines the type for which you will write the plugin.
The interface has just one function which you have to implement: T GetValue();
Thats all! You can write plugins for simple types and complex types.

The following example shows the implementation of the plugin MyFirstPlugin.
The MyFirstPlugin plugin is written for the type string because it is derived from IRandomizerPlugin<string>.

The implementation in the method public string GetValue() takes a random item of a given list. Thats all. Now it is possible to use this plugin everywhere where a value of type string should be genereated.

If you wrote a great plugin, i would be happy to get a pull request on GitHub :smile: :+1:

public class MyFirstPlugin : IRandomizerPlugin<string>
  private readonly Random r = new Random();
  private readonly List<string> allNames = 
  new List<string>() 

  public string GetValue()
    return allNames[r.Next(0, allNames.Count)];

public class Person
  public string Name { get; set; }

public class HelloFiller
  public void FillPerson()
    Filler<Person> pFiller = new Filler<Person>();
      .OnType<string>().Use(new MyFirstPlugin());

    Person filledPerson = pFiller.Create();