首页 新闻 搜索 专区 学院

怎么写一个类似System.Web.HttpContext的类

0
[待解决问题]

 asp.net项目,现在的需求是一个请求最开始的地方创建这个类的实例,然后在任何地方可以使用这个实例,就像System.Web.HttpContext.Current,我现在是放在session里面了,有没有更好的办法

拖鞋王子的主页 拖鞋王子 | 初学一级 | 园豆:47
提问于:2017-08-23 13:54
< >
分享
所有回答(1)
0

这个类访问的是固定资源,具体写法可以参考下单例模式的代码

灵行寻燕 | 园豆:226 (菜鸟二级) | 2017-08-23 14:41

单例模式的话是所有请求都公用了,我现在要每个请求都是独立的

支持(0) 反对(0) 拖鞋王子 | 园豆:47 (初学一级) | 2017-08-23 14:58

@拖鞋王子:  当前请求只有一个,而且只是参考单例 而不是完全一样

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; }
    }

上面是去当前配置的 修改配置后 调用获取的是新的配置而不是之前的,可以自己加一些自己的判定时候创建新的对象

支持(0) 反对(0) 灵行寻燕 | 园豆:226 (菜鸟二级) | 2017-08-23 15:08

@灵行寻燕: 没看懂你的意思,我发现可以存在System.Web.HttpContext.Current.Items["key"]里面

支持(0) 反对(0) 拖鞋王子 | 园豆:47 (初学一级) | 2017-08-23 15:42

@拖鞋王子: 因为这是一个具体的对象

  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(); }
        }
    }

这样 长得像了吧

支持(0) 反对(0) 灵行寻燕 | 园豆:226 (菜鸟二级) | 2017-08-23 15:47

@拖鞋王子: 因为这是一个具体的对象

  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(); }
        }
    }

这样 长得像了吧

支持(0) 反对(0) 灵行寻燕 | 园豆:226 (菜鸟二级) | 2017-08-23 15:47

@灵行寻燕: MyClass.Config 这样用吗,这样的话不是每次都创建了一个新的Config吗

支持(0) 反对(0) 拖鞋王子 | 园豆:47 (初学一级) | 2017-08-23 15:55

@拖鞋王子: 提供思路给你,不要在意细节

支持(0) 反对(0) 灵行寻燕 | 园豆:226 (菜鸟二级) | 2017-08-23 15:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册