public class DTSNode
    {
        private string m_Url;
        /// <summary>
        /// 节点URL。
        /// </summary>
        public string Url
        {
            get { return m_Url; }
            set { m_Url = value; }
        }        private string m_NodeName;
        /// <summary>
        /// 节点名称。
        /// </summary>
        public string NodeName
        {
            get { return m_NodeName; }
            set { m_NodeName = value; }
        }
    } private DTSNode[] m_Nodes;
        public DTSNode[] Nodes
        {
            get
            {
                DTSNode StrReturn = new DTSNode();
             
                XmlDocument doc = new XmlDocument();
                doc.Load(System.Web.HttpContext.Current.Server.MapPath("cfg.xml"));
                XmlNodeList nodes = doc.SelectSingleNode("//Nodes").ChildNodes;
                XmlNodeList node = doc.GetElementsByTagName("Node");
                               for (int i = 0; i < nodes.Count; i++)
                    {
                        StrReturn.NodeName = node.Item(i).InnerText;
                        StrReturn.Url = nodes.Item(i).Attributes["Url"].Value;
                        if (m_Nodes == null)
                        {
                            
                            this.m_Nodes[i].NodeName = StrReturn.NodeName;
                            this.m_Nodes[i].Url = StrReturn.Url;
                        }
                    }
                    
                return m_Nodes;
        
            } 
            set { m_Nodes = value; }
        }
        }
说  this.m_Nodes[i].NodeName = StrReturn.NodeName;
  this.m_Nodes[i].Url = StrReturn.Url;这两句未将对象引用设置到对象的实例。什么原因...
  

解决方案 »

  1.   

    if (m_Nodes !=null)
                            {
                                
                                this.m_Nodes[i].NodeName = StrReturn.NodeName;
                                this.m_Nodes[i].Url = StrReturn.Url;
                            }
    是!=,你写成==了
      

  2.   

    List<DTSNode>保存实体对象
    if (m_Nodes!=null)
     {}
      

  3.   

    if (m_Nodes!=null)
     {}不行啊   m_Nodes本来就是=NULL  那里面语句都不执行了
      

  4.   

    if (m_Nodes!=null)
    {}
    你换成这个试看看
    if (m_Nodes!= "")
    {}
      

  5.   

    围观头像说  this.m_Nodes[i].NodeName = StrReturn.NodeName;
      this.m_Nodes[i].Url = StrReturn.Url;这两句未将对象引用设置到对象的实例。什么原因...
    你定义m_Nodes本身是空
    这里是你的定义private DTSNode[] m_Nodes;//m_Nodes是作为数组
    尝试这样定义private List<DTSNode> m_Nodes;
      

  6.   

    如果等于null,那 this.m_Nodes[i].NodeName 怎么会不抱错~
      

  7.   

    第一:DTSNode[]定义出来的数组不支持动态增加元素个数,所以建议使用List<DTSNode>,即:
    private List<DTSNode> m_Nodes = new List<DTSNode>()//不初始化的话m_Nodes为null,不能拿来直接使用
    第二:即使m_Nodes不为null,在你使用this.m_Nodes[i]时m_Nodes[i]是null,所以还是会异常,应该这样:
    if (m_Nodes.Count - 1 < i)
    {
        this.m_Nodes.Add(new DTSNode());                        
        this.m_Nodes[i].NodeName = StrReturn.NodeName;
        this.m_Nodes[i].Url = StrReturn.Url;
    }
      

  8.   

     this.m_Nodes[i].Url ,里面 m_Nodes缺了个new吧,是null的