Beispiel #1
0
        static bool Add(Dictionary <System.Type, UseTypeInfo> csharpDelegate, System.Type type, MemberInfo member)
        {
            UseTypeInfo info = null;

            if (!csharpDelegate.TryGetValue(type, out info))
            {
                if (IsDelegate(type))
                {
                    info = new UseTypeInfo();
                    if (member != null)
                    {
                        info.Add(member);
                    }
                    csharpDelegate.Add(type, info);
                    return(true);
                }

                return(false);
            }
            else
            {
                if (member != null)
                {
                    info.Add(member);
                }

                return(true);
            }
        }
        public void AddUseTypeInfo(string name, string ns)
        {
            UseTypeInfo item = default(UseTypeInfo);

            item.Name      = name;
            item.Namespace = ns;
            if (this.m_useTypes == null)
            {
                this.m_useTypes = new List <UseTypeInfo>();
            }
            this.m_useTypes.Add(item);
        }
 public List <MemberMapping> GetTypeNameElements()
 {
     if (this.m_useTypes != null)
     {
         List <MemberMapping> list = new List <MemberMapping>();
         {
             foreach (UseTypeInfo useType in this.m_useTypes)
             {
                 UseTypeInfo current = useType;
                 list.Add(this.Elements[current.Name, current.Namespace]);
             }
             return(list);
         }
     }
     return(null);
 }
Beispiel #4
0
        static bool Add(System.Type type, MemberInfo mi, Dictionary <System.Type, UseTypeInfo> dic)
        {
            // 为模版并且实例化了
            if (!IsTemplateInstance(type))
            {
                return(false);
            }

            if (IsDelegate(type))
            {
                return(false);
            }

            if (IsHotType(type))
            {
                if (type.FullName.StartsWith("System.Collections.Generic.Dictionary`2[["))
                {
                    // 为Map类型
                    var parameter = type.GetGenericArguments();
                    if (IsHotType(parameter[0]) && IsHotType(parameter[1]))
                    {
                        // 都是热更当中的
                        return(false);
                    }
                    else
                    {
                    }
                }
                else
                {
                    return(false);
                }
            }

            UseTypeInfo info = null;

            if (dic.TryGetValue(type, out info))
            {
                info.Add(mi);
                return(true);
            }

            info = new UseTypeInfo();
            info.Add(mi);
            dic.Add(type, info);
            return(true);
        }
Beispiel #5
0
        static void DebugInfo(string suffix, System.Type type, Dictionary <System.Type, UseTypeInfo> infos, System.Text.StringBuilder sb)
        {
            sb.Append(suffix);
            sb.Append("// ");
            sb.AppendLine(GetClassRealClsName(type));

            UseTypeInfo info = null;

            if (infos.TryGetValue(type, out info))
            {
                if (info.infos.Count == 0)
                {
                    return;
                }

                info.To(sb, suffix);
            }
        }