/// <summary>
 /// 得到message
 /// </summary>
 /// <param name="nameSpace"></param>
 /// <param name="name"></param>
 /// <returns>
 /// 如果不存在返回null
 /// </returns>
 public ProtoBufferMessage Message(string nameSpace, string name)
 {
     if (MessagesDic.ContainsKey(nameSpace))
     {
         if (MessagesDic[nameSpace].ContainsKey(name))
         {
             return(MessagesDic[nameSpace][name]);
         }
     }
     return(null);
 }
        public void Parse()
        {
            foreach (ProtoBufferFile file in Files)
            {
                file.ParseInfos();
            }

            foreach (ProtoBufferFile file in Files)
            {
                file.Parse2Message();
            }

            foreach (ProtoBufferFile file in Files)
            {
                file.Parse2Field();
            }

            foreach (ProtoBufferFile file in Files)
            {
                string nameSpace = file.NameSpace;

                if (OutNameSpace != null)
                {
                    file.NameSpace = OutNameSpace;
                }

                if (!MessagesDic.ContainsKey(nameSpace))
                {
                    MessagesDic.Add(nameSpace, new Dictionary <string, ProtoBufferMessage>());
                }
                foreach (ProtoBufferMessage msg in file.Messages)
                {
                    if (MessagesDic[nameSpace].ContainsKey(msg.Name))
                    {
                        throw new ProtoBufferException(string.Format("该命名空间{0}已经存在{1}", nameSpace, msg.Name));
                    }
                    else
                    {
                        MessagesDic[nameSpace].Add(msg.Name, msg);
                        Messages.Add(msg);
                    }
                }
            }
        }