asp.net项目,现在的需求是一个请求最开始的地方创建这个类的实例,然后在任何地方可以使用这个实例,就像System.Web.HttpContext.Current,我现在是放在session里面了,有没有更好的办法
这个类访问的是固定资源,具体写法可以参考下单例模式的代码
单例模式的话是所有请求都公用了,我现在要每个请求都是独立的
@拖鞋王子: 当前请求只有一个,而且只是参考单例 而不是完全一样
public class Config { private Config() { this.data1 = ConfigurationManager.AppSettings["data1"]; this.data2 = ConfigurationManager.AppSettings["data2"]; } public static Config GetConfig() { return new Config(); } public string data1 { get; } public string data2 { get; } }
上面是去当前配置的 修改配置后 调用获取的是新的配置而不是之前的,可以自己加一些自己的判定时候创建新的对象
@灵行寻燕: 没看懂你的意思,我发现可以存在System.Web.HttpContext.Current.Items["key"]里面
@拖鞋王子: 因为这是一个具体的对象
public class Config { private Config() { this.data1 = ConfigurationManager.AppSettings["data1"]; this.data2 = ConfigurationManager.AppSettings["data2"]; } public static Config GetConfig() { return new Config(); } public string data1 { get; } public string data2 { get; } } public sealed class MyClass { public string a { get; set; } public static Config config { get { return Config.GetConfig(); } } }
这样 长得像了吧
@拖鞋王子: 因为这是一个具体的对象
public class Config { private Config() { this.data1 = ConfigurationManager.AppSettings["data1"]; this.data2 = ConfigurationManager.AppSettings["data2"]; } public static Config GetConfig() { return new Config(); } public string data1 { get; } public string data2 { get; } } public sealed class MyClass { public string a { get; set; } public static Config config { get { return Config.GetConfig(); } } }
这样 长得像了吧
@灵行寻燕: MyClass.Config 这样用吗,这样的话不是每次都创建了一个新的Config吗
@拖鞋王子: 提供思路给你,不要在意细节