C# 如何使用会话或其他解决方案将变量发送到WebApi controlleri
我有一个“数据库参考”,其中有一个包含这些信息的表C# 如何使用会话或其他解决方案将变量发送到WebApi controlleri,c#,.net,asp.net-web-api,asp.net-web-api2,C#,.net,Asp.net Web Api,Asp.net Web Api2,我有一个“数据库参考”,其中有一个包含这些信息的表 公司名称 公司代码 连接字符串 每个公司都有自己的连接字符串来访问自己的数据库。然后我有x个数据库(相同的结构),每个公司一个 我必须这样做: 从查询字符串中获取一些信息以访问“数据库引用” 访问“数据库引用”以获取连接字符串 我必须通过DI(Unity)发送此连接字符串或存储库构造函数 我使用session变量(我知道state less),但我不想在两次调用之间保留任何内容 我用应用程序变量创建了几个解决方案,但在我的例子中,这不是正确的方
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
var container = new UnityContainer();
container.RegisterType<DbContext, DbRefernceAdministrationContext>(new HierarchicalLifetimeManager());
container.RegisterType<DbContext, CompanyContext>(new HierarchicalLifetimeManager());
container.RegisterType<ICompanyRepository, CompanyRepository>(new InjectionConstructor(new CompanyContext()));
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
公共静态类WebApiConfig
{
公共静态无效寄存器(HttpConfiguration配置)
{
var container=new UnityContainer();
RegisterType(新的层次结构CallifetimeManager());
RegisterType(新的层次结构CallifetimeManager());
RegisterType(新的注入构造函数(新的CompanyContext());
config.Routes.MapHttpRoute(
名称:“DefaultApi”,
routeTemplate:“api/{controller}/{id}”,
默认值:新建{id=RouteParameter.Optional}
);
}
}
将所有数据库连接字符串信息移动到app.config
然后按从查询字符串中选择数据库引用
config.Routes.MapHttpRoute(
name: "DbRefApi",
routeTemplate: "api/{controller}/{databaseref}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
public string GetActiveConnString()
{
//Read from app.config file
//create an active repository using connection string
}
通过以下方式获取活动连接字符串:
config.Routes.MapHttpRoute(
name: "DbRefApi",
routeTemplate: "api/{controller}/{databaseref}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
public string GetActiveConnString()
{
//Read from app.config file
//create an active repository using connection string
}
我知道我能做到。但是还有连接字符串和更多其他东西