private IEnumerable <Type> getGenericArgTypes(InvokeMemberBinder binder) { // FIXME: avoid access to private members return(binder .GetPropertyValue("Microsoft.CSharp.RuntimeBinder.ICSharpInvokeOrInvokeMemberBinder.TypeArguments", true) as IEnumerable <Type>); }
private CSharpArgumentInfoFlags[] getArgFlags(InvokeMemberBinder binder) { // FIXME: avoid access to private members var info = binder .GetPropertyValue("Microsoft.CSharp.RuntimeBinder.ICSharpInvokeOrInvokeMemberBinder.ArgumentInfo", true) as IEnumerable <CSharpArgumentInfo>; return(info .Select(i => (CSharpArgumentInfoFlags)i.GetPropertyValue("Flags", true)) .Skip(1) // service args .ToArray()); }