public static object SetSlice(object target, string name, object[] args)
        {
            var duck = target as IQuackFu;

            if (null != duck)
            {
                return(duck.QuackSet(name, (object[])RuntimeServices.GetRange2(args, 0, args.Length - 1), args[args.Length - 1]));
            }

            Type type = target.GetType();

            if ("" == name)
            {
                if (IsSetArraySlice(target, args))
                {
                    return(SetArraySlice(target, args));
                }
                name = GetDefaultMemberName(type);
            }
            MemberInfo member = SelectSliceMember(GetMember(type, name), ref args, SetOrGet.Set);

            return(SetSlice(target, member, args));
        }