将配置信息传递给服务工厂

时间:2014-11-03 19:27:02

标签: c# asp.net asp.net-mvc

我有一个MVC控制器调用服务(GlobalService)来执行操作,基于传递的参数,GlobalService在其自己的存储库以及使用工厂创建的其他Platform服务上执行某些操作。如果我想传递某些配置信息,如连接字符串,以及一些用于图片的UI路径等,那么创建IPlatform对象的最佳方法是什么。

MVC控制器----> Gloabl服务----> IPlatformFactory.GetPlatform(" platform1")---> Platform1(字符串connString,字符串filePath)

1 个答案:

答案 0 :(得分:0)

考虑向Platform构造函数添加参数,就像在DbContext中完成的那样

public interface IPlatform 
{
    ...
}

public abstract class Platform : IPlatform 
{
    public Platform(string connString , string filePath) 
    {
      ...
    }
}


public sealed class Platform1 : Platform
{
    public Platform1(string connString, string filePath) : base(connString,  filePath) {}
}


public interface IPlatformFactory
{
    IPlatform GetPlatform(string code, string connString, string filePath);
}


public class PlatformFactory : IPlatformFactory
{

    public  IPlatform GetPlatform(string code, string connString, string filePath)
    {
        ...
        return new Platform1(connString,  filePath);
    }
}