Exemplo n.º 1
0
 private IEnumerable <Type> getGenericArgTypes(InvokeMemberBinder binder)
 {
     // FIXME: avoid access to private members
     return(binder
            .GetPropertyValue("Microsoft.CSharp.RuntimeBinder.ICSharpInvokeOrInvokeMemberBinder.TypeArguments", true)
            as IEnumerable <Type>);
 }
Exemplo n.º 2
0
        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());
        }