public int GetData()
        {
           AppDomain domain=null;
            string name = "king";
            string value = "mm";
            domain.SetData(name, (object)value);   //此处报错说未将对象实例化,这是 为什么;
            int ThreadID = AppDomain.GetCurrentThreadId();            
            return ThreadID;
        }
资料是这么写的。为什么我会出错呢?

解决方案 »

  1.   


    AppDomain domain=null; 
                //string name = "king"; 
                //string value = "mm"; 
                domain.SetData(name, (object)value);  //此处报错说未将对象实例化,这是 为什么; 
                //int ThreadID = AppDomain.GetCurrentThreadId();            
                //return ThreadID; 
    看看注释后剩下的代码,AppDomain domain=null;然后你就domain.SetData(name, (object)value);  
    domain没有实例化嘛!
      

  2.   

    public int GetData() 
            { 
              AppDomain domain=null; 
                string name = "king"; 
                string strValue = "mm"; 
                domain.SetData(name, (object)strValue);  //此处报错说未将对象实例化,这是 为什么; 
                int ThreadID = AppDomain.GetCurrentThreadId();            
                return ThreadID; 
            }
    还是一样,报错
      

  3.   

    ...刚设成null,然后就调用,你在挑战CLR吗
      

  4.   

    你都生命了 AppDomain domain=null; domain.SetData(name, (object)strValue);  ....就是 null.SetData 不出错才怪.改成这样.
      AppDomain domain = AppDomain.CreateDomain("Temp");
       
      

  5.   

      public  AppDomain domain;
            public int GetData()
            {
               
                string name = "king";
                string strvalue = "mm";
                domain.SetData(name, (object)strvalue);
               int ThreadID = AppDomain.GetCurrentThreadId();                            
                return ThreadID;
            }
    这样还出错啊!
      

  6.   

    http://topic.csdn.net/u/20070518/15/a0a155b6-267e-4d75-89aa-9a696beed346.html
      

  7.   

     public int GetData()
            {           
                string name = "king";
                string strvalue = "mm";
               // domain.SetData(name, (object)strvalue);
               AppDomain.CurrentDomain.SetData(name, (object)strvalue);     
              int ThreadID = AppDomain.GetCurrentThreadId();               
                return ThreadID;
            }
    现在改成这样了。不知道这个是否正确??
      

  8.   


    public int GetData() 
            { 
              AppDomain domain=System.AppDomain.CurrentDomain; 
                string name = "king"; 
                string strValue = "mm"; 
                domain.SetData(name, (object)strValue);  //此处报错说未将对象实例化,这是 为什么; 
                int ThreadID = AppDomain.GetCurrentThreadId();            
                return ThreadID; 
            } 
      

  9.   

    谢了,我已经搞定!~
    呵呵        public AppDomain domain;
            object o = null;
            public int GetData()
            {
                domain = AppDomain.CurrentDomain;
                string name = "king";
                string strvalue = "mm";
                domain.SetData(name, (object)strvalue);
               // AppDomain.CurrentDomain.SetData(name, (object)strvalue);                           // 为应用程序域属性分配值           
                 o = domain.GetData(name);
                int ThreadID = AppDomain.GetCurrentThreadId();                  // 获取当前线程标识符。
                return ThreadID;
            }        private void button1_Click(object sender, EventArgs e)
            {
                MessageBox.Show(this.GetData().ToString()+o);
            }
      

  10.   


     AppDomain domain = AppDomain.CreateDomain("test"); //实例化
                string name = "king";
                string value = "mm";
                domain.SetData(name, (object)value);  
                  /*int ThreadID = AppDomain.GetCurrentThreadId(); 微软已经不建议开发人员使用AppDomain.GetCurrentThreadId();
                 'System.AppDomain.GetCurrentThreadId()' is obsolete: 'AppDomain.GetCurrentThreadId has been deprecated because it does not provide a stable Id when managed threads are running on fibers (aka lightweight threads). To get a stable identifier for a managed thread, use the ManagedThreadId property on Thread.  */ 
                int ThreadID = System.Threading.Thread.CurrentThread.ManagedThreadId;
                return ThreadID;AppDomain.GetCurrentThreadId()实际上调用的是WIN32 API,其返回的是该线程在windows中的ThreadId;
    Thread.ManagedThreadId 返回的是作为一个ManagedThread在.NET CLR中的ThreadId,所以这和windows的ThreadId是完全不同的
      

  11.   

    楼上的你说得我已经注意到了,
    AppDomain.GetCurrentThreadId 方法 是个过时的API。谢了!~
      

  12.   

    有道理 AppDomain domain=null