Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 全局可访问mvc web应用程序配置?_C#_Asp.net Mvc_Asp.net Mvc 4_Configuration - Fatal编程技术网

C# 全局可访问mvc web应用程序配置?

C# 全局可访问mvc web应用程序配置?,c#,asp.net-mvc,asp.net-mvc-4,configuration,C#,Asp.net Mvc,Asp.net Mvc 4,Configuration,我的web应用程序一启动,就会从自定义配置文件(!not web.config)中加载一些数据库连接参数,创建一个数据库实例,并需要从数据库中提取120个不同的参数,以便正常工作。现在我的问题是-使它们全局可访问的最佳方法是什么?您可以在其周围创建一个静态包装器,其中包含每个参数的属性或包含所有参数的字典: public static class ConfigParams { // Either properties for every parameter: public st

我的web应用程序一启动,就会从自定义配置文件(!not web.config)中加载一些数据库连接参数,创建一个数据库实例,并需要从数据库中提取120个不同的参数,以便正常工作。现在我的问题是-使它们全局可访问的最佳方法是什么?

您可以在其周围创建一个静态包装器,其中包含每个参数的属性或包含所有参数的字典:

public static class ConfigParams
{
    // Either properties for every parameter:

    public static string Culture { get; set; }

    public static string WebsiteTitle { get; set; }

    public static DateTime LastUpdate { get; set; }

    // Or a dictionary containing all the properties accessed by a string:

    Dictionairy<string, object> Params { get; set; }    
}
或使用字典:

string culture = ConfigParams.Params["Culture"].ToString(); 

这是一种常见的方法,还是在干净的mvc实现方面我面临着严重的缺点?如果说我从ASP MVC4中学到一件事的话,那就是微软非常认真地按照自己的方式做事。@Acrotygma MVC本身并没有为这样的问题提供解决方案。您还可以创建带有接口的服务,并使用IoC框架注入实现。这实际上取决于您的应用程序体系结构。
string culture = ConfigParams.Params["Culture"].ToString();