private static Dispatcher CreateGetSliceDispatcher(object target, string name, object[] args)
{
var duck = target as IQuackFu;
if (null != duck)
return (o, arguments) => ((IQuackFu) o).QuackGet(name, arguments);
if ("" == name
&& args.Length == 1
&& target is Array) return GetArraySlice;
return new SliceDispatcherFactory(_extensions, target, target.GetType(), name, args).CreateGetter();
}