如何使用 Zenject 创建具有多个参数的工厂?

How do I create factories capable of multiple parameters with Zenject?

如何使用带多个参数重载 Create 方法的 zenject 创建工厂(或如何以不同方式解决此问题)?

我希望能够

var x = factory.Create("bla bla");//string
x = factory.Create();//parameterless
x = factory.Create(1);//int
x = factory.Create(1,2);//int,int
x = factory.Create("bla bla",2);//string,int

一种方法是创建一个包含最大数量参数的工厂,然后提供使用默认值作为缺失值的额外方法,如下所示:

public class Foo
{
    [Inject]
    public string Value1;

    [Inject]
    public int Value2;

    public class Factory : Factory<string, int, Foo>
    {
        public Foo Create(string value1)
        {
            return Create(value1, 0);
        }

        public Foo Create()
        {
            return Create("default");
        }
    }
}