如何使用 zenject 创建具有多个参数重载的 Create 方法的工厂(或如何以不同的方式解决此问题)?
我希望能够
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
如何使用 zenject 创建具有多个参数重载的 Create 方法的工厂(或如何以不同的方式解决此问题)?
我希望能够
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");
}
}
}