我有一个MVC控制器调用服务(GlobalService)来执行操作,基于传递的参数,GlobalService在其自己的存储库以及使用工厂创建的其他Platform服务上执行某些操作。如果我想传递某些配置信息,如连接字符串,以及一些用于图片的UI路径等,那么创建IPlatform对象的最佳方法是什么。
MVC控制器----> Gloabl服务----> IPlatformFactory.GetPlatform(" platform1")---> Platform1(字符串connString,字符串filePath)
答案 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);
}
}