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); }
//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()); }