建议:public class ApplicationConfiguration
{
    private string _conStr;
    public string ConnectionString {
        get {
           return _conStr;
        }
    }    private ApplicationConfiguration() {
    }    public void Initialize(XmlNode config) {
       //读取配置
    }
    
    private ApplicationConfiguration _instance;
    public ApplicationConfiguration Instance {
           get {
                if( _instance==null ) _instance = new ApplicationConfiguration();
                return _instance;
           }
    }
}初始化的地方:读取XML
ApplicationConfiguration.Instance.Initialize(node);使用的地方:string connStr = ApplicationConfiguration.Instance.ConnectionString;//获取连接字符串用此方法可以把其他配置信息在初始化的时候解析成类型化的变量,然后用属性暴露出来,其他地方直接使用配置类的属性就可以访问配置信息了

解决方案 »

  1.   

    Sorry 
    上面的
        private ApplicationConfiguration _instance;
        public ApplicationConfiguration Instance {
               get {
                    if( _instance==null ) _instance = new ApplicationConfiguration();
                    return _instance;
               }
        }
    应为:
        private static ApplicationConfiguration _instance;
        public static ApplicationConfiguration Instance {
               get {
                    if( _instance==null ) _instance = new ApplicationConfiguration();
                    return _instance;
               }
        }
      

  2.   

    你误解我的意思了.这样作岂不是每次实例化此类的时候都要读XML文件然后返回信息吗?我要的是读一次,把整个类存到一个非强类型的类似于变量的变量里面,一直存于内存,而且要求生存周期为整个程序的生存周期.感谢你的意见,但离我的要求有出入.
      

  3.   

    笨死,.net下所有变量都是对象而且都是object的孩子。
    一个object可以指向所有对象
      

  4.   

    是你没看懂我的代码public ApplicationConfiguration Instance这个属性是这个配置类的唯一的实例,只需要在最开始初始化的时候实例化一次,然后在程序运行期间都在内存当中,直接访问就行了你只用在程序开始的时候调用:
    ApplicationConfiguration.Instance.Initialize()方法,把Xml传递进去初始化一次就可以了
      

  5.   

    Sorry,又掉了static,应该是:
    public static ApplicationConfiguration Instance这个实例是静态的,也就是说实例会一直保存在内存中,直到程序结束
      

  6.   

    明白.但我还是想问,如何把一类的实例保存到变量中.不是类,是整个信息平面保存进去,再强类型转换出来.在Web的.net开发里可以作到,是上下文类实现的.在Windows开发中怎么没有呢?
      

  7.   

    不太明白你的意思你要保存一个实例,可以用很多方法,比如静态成员、比如Hash表,关键要看你怎么用例如,你在某个类中写一个静态的Hash表,这里就可以存放整个应用程序周期内生效的对象:using System.Collections;
    public ObjectStock {
        private static Hashtable _data;
        public static Hashtable Data {
             get {
               if( _data==null ) _data = new Hashtable();
               return _data;
             }
        }
    }然后,存放对象:
    YourType obj = ....//你的对象,什么类型都可以
    ...
    ObjectStock.Data.Add("myobject",obj);在某个位置读取:YourType obj = (YourType)ObjectStock.Data["myobject"];
      

  8.   

    c#做WINDOWS程序,没有全局变量,你只能通过属性来实现类似的效果,使用OBJECT应该可以实现你的要求