class protocol:IDisposable
    {
        private static protocol instance;
        /// <summary>
        /// 实例化协议类
        /// </summary>
        /// <returns></returns>
        public protocol()
        {
 
        }
        private string _model;
        /// <summary>
        /// 累加和后的指令属性
        /// </summary>
        /// <returns></returns>
        public string _Model
        {
            get
            {
                return _model;
            }
            set 
            {
                _model = value;
            }
        }
        /// <summary>
        /// 输入一个参数将其进行累加和及异或校验
        /// </summary>
        /// <param name="ls"></param>
        /// <returns></returns>
        private protocol(string ls)
        {
            #region      //生成指令代码
            char[] c_ls = ls.ToCharArray();
            int sum = 0;//累加和
            long xor = 0;//异或
            int model = 0;//取模
            string ls_jy = null;//临时校验参数
            ASCIIEncoding AE1 = new ASCIIEncoding();
            for (int i = 0; i < c_ls.Length; i++)
            {
                byte[] ByteArray1 = AE1.GetBytes(c_ls[i].ToString());
                //打印出ASCII码
                for (int x = 0; x <= ByteArray1.Length - 1; x++)
                {
                    sum += Convert.ToInt32(ByteArray1[x]);//累加和
                }
            }
            model = sum % 256;//取模
            xor = model ^ Convert.ToInt32("87", 16);
            ls_jy = Convert.ToString(xor, 16).ToUpper();
            _Model = "#"
                + ls.ToUpper()
                + (ls_jy.Length < 2 ? "0" + ls_jy : ls_jy)
                + "!";
            #endregion
            //model = (restring.Select(x => (int)x).Aggregate(0, (x, y) => (x + y) % 256) ^ 135).ToString("X").PadLeft(2, '0');
            //_Model = ("#" + restring + model + "!");        }
        /// <summary>
        /// 返回一个自定义的协议类
        /// </summary>
        /// <param name="ls">参数值</param>
        /// <returns></returns>
        public static protocol Getinstance(string ls)
        {
            if (instance == null)
            {
              instance = new protocol(ls);
              
            }
            else
            {
              instance._Model = null;
              instance = new protocol(ls);
             }
            return instance;         }         #region IDisposable 成员         public void Dispose()
         {
              
         }         #endregion
     }
上面这段程序  
 string model = protocol.Getinstance(ls_str)._Model;
 spPort.Write(model);//将指令写入串口缓冲区
执行程序时,提示红色部分没有实例化对象,不知道具体是哪里出了问题,高手指点一下c#