Пример #1
0
        public static TKTConstructorDesc SearchConstructor(TKTConstructorDesc desc, CnEnDict WordDict, Type ForType)
        {
            TKTConstructorDesc bracket2 = desc;

            if (WordDict != null && desc.Bracket.IsNameValue)
            {
                List <TKTProcArg> args = new List <TKTProcArg>();
                foreach (var arg in desc.Bracket.ListArgs)
                {
                    string     newArgName = WordDict.Get(arg.ArgName);
                    TKTProcArg newArg     = new TKTProcArg(newArgName, arg.ArgType, arg.ArgType.IsGenericType);
                    args.Add(newArg);
                }
                bracket2 = new TKTConstructorDesc(args);
            }
            ConstructorInfo[] constructorInfoArray = ForType.GetConstructors();
            foreach (ConstructorInfo ci in constructorInfoArray)
            {
                if (ci.IsPublic)
                {
                    TKTConstructorDesc bracketCi = ProcDescHelper.CreateProcBracket(ci);
                    if (bracketCi.Eq(bracket2))
                    {
                        return(bracketCi);
                    }
                }
            }
            return(null);
        }
Пример #2
0
        //public override ZType CreateNewFor(Type forType)
        //{
        //    PureZType gcl = new PureZType(forType);
        //    return gcl;
        //}

        public override TKTConstructorDesc[] GetConstructors()
        {
            List <TKTConstructorDesc> list = new List <TKTConstructorDesc>();

            //TKTConstructorDesc bracket2 = desc;
            ConstructorInfo[] constructorInfoArray = this.SharpType.GetConstructors();
            foreach (ConstructorInfo ci in constructorInfoArray)
            {
                if (ci.IsPublic)
                {
                    TKTConstructorDesc bracketCi = ProcDescHelper.CreateProcBracket(ci);
                    list.Add(bracketCi);
                }
            }
            return(list.ToArray());
        }