2017-08-03 85 views
1

如何用zenject創建多個參數重載的工廠創建方法(或如何解決這個問題的不同方式)?如何使用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 

回答

1

一種方法是創建一個工廠,包括參數的最大數量,然後提供使用默認值這樣的遺漏值額外的方法:

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"); 
     } 
    } 
} 
+0

看起來如此明顯,我覺得有點不滿意,我沒有想到我自己... – NoxMortem