private static IConstructorDef ParseConstructorDef(ClassHierarchyProto.ConstructorDef def, bool isInjectable)
        {
            IList <IConstructorArg> args = new List <IConstructorArg>();

            foreach (ClassHierarchyProto.ConstructorArg arg in def.args)
            {
                args.Add(new ConstructorArgImpl(arg.full_arg_class_name, arg.named_parameter_name, arg.is_injection_future));
            }
            return(new ConstructorDefImpl(def.full_class_name, args.ToArray(), isInjectable));
        }
        private static ClassHierarchyProto.ConstructorDef newConstructorDef(
            String fullClassName, IList <ClassHierarchyProto.ConstructorArg> args)
        {
            ClassHierarchyProto.ConstructorDef constDef = new ClassHierarchyProto.ConstructorDef();
            constDef.full_class_name = fullClassName;
            foreach (ClassHierarchyProto.ConstructorArg arg in args)
            {
                constDef.args.Add(arg);
            }

            return(constDef);
        }
        private static ClassHierarchyProto.ConstructorDef newConstructorDef(
             String fullClassName, IList<ClassHierarchyProto.ConstructorArg> args)
        {
            ClassHierarchyProto.ConstructorDef constDef = new ClassHierarchyProto.ConstructorDef();
            constDef.full_class_name = fullClassName;
            foreach (ClassHierarchyProto.ConstructorArg arg in args)
            {
                constDef.args.Add(arg);
            }

            return constDef;
        }