C#Unity如何解决已经使用工厂方法进行注入的类

时间:2016-09-13 15:32:21

标签: c#-4.0 unity-container

我有两个接口的实现。例如;我有一个名为IWriter的接口。还有两个实现,如FileWriter(写入文件夹)和FTPWriter,它将文件上传到FTP。我想根据配置设置解决。所以需要使用工厂方法。 FileWriter和FTPWriter都在其构造函数中注入了一些接口。那么我该如何解决这个问题?

public interface IWriter{ void Write();}
public class FileWriter : IWriter{
    public FileWriter(IInterface interface1, IInterface 2)
    {

    }
}

public class FTPWriter : IWriter{
    public FTPWriter(IInterface interface1, IInterface 2)
    {

    }
}

public static Factory
{
    public IWriter GetWriter(string mode)
    {
        if(mode=="1")
            return new FileWriter();//But i need the object to the interface1, interface2 injected
        else
            return new FTPWriter(); //But i need the object to the interface1, interface2 injected

    }
}

public class MainService : IMainService{
     public MainClass(IOtherInterface other, IWriter writer){

     }
}

我的团结配置:

container.RegisterType<IMainService, MainService >();

由于

0 个答案:

没有答案