Ejemplo n.º 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);
            }
        }
Ejemplo n.º 2
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);
        }