public static void AttachProperties(this BindingClass target, IEnumerable<PropertyInfo> properties)
        {
            foreach (var property in properties)
            {
                var names = property.GetDomNames();
                var accessors = property.GetDomAccessors();
                var binding = property.CreatePropertyOrIndexBinding();

                target.AttachAll(names, binding);

                if (binding is BindingFunction)
                    target.AttachAll(accessors, binding as BindingFunction);
            }
        }
        public static void AttachMethods(this BindingClass target, IEnumerable<MethodInfo> methods)
        {
            foreach (var method in methods)
            {
                if (method.IsConstructor)
                    continue;

                var names = method.GetDomNames();
                var accessors = method.GetDomAccessors();
                var binding = method.CreateMethodBinding();

                target.AttachAll(names, binding);
                target.AttachAll(accessors, binding);
            }
        }
        public static void AttachEvents(this BindingClass target, IEnumerable<EventInfo> events)
        {
            foreach (var evt in events)
            {
                var names = evt.GetDomNames();
                var binding = evt.CreateEventBinding();

                target.AttachAll(names, binding);
            }
        }
        public static void AttachFields(this BindingClass target, IEnumerable<FieldInfo> fields)
        {
            foreach (var field in fields)
            {
                var names = field.GetDomNames();
                var binding = new BindingField(field.Name, field.FieldType);

                target.AttachAll(names, binding);
            }
        }