Python.Runtime.MethodBinder.Invoke C# (CSharp) Метод

Invoke() приватный Метод

private Invoke ( IntPtr inst, IntPtr args, IntPtr kw ) : IntPtr
inst System.IntPtr
args System.IntPtr
kw System.IntPtr
Результат System.IntPtr
	internal virtual IntPtr Invoke(IntPtr inst, IntPtr args, IntPtr kw) {
	    return this.Invoke(inst, args, kw, null);
	    
	}

Same methods

MethodBinder::Invoke ( IntPtr inst, IntPtr args, IntPtr kw, MethodBase info ) : IntPtr

Usage Example

Пример #1
0
        //====================================================================
        // This is a hack. Generally, no managed class is considered callable
        // from Python - with the exception of System.Delegate. It is useful
        // to be able to call a System.Delegate instance directly, especially
        // when working with multicast delegates.
        //====================================================================

        public static IntPtr tp_call(IntPtr ob, IntPtr args, IntPtr kw)
        {
            //ManagedType self = GetManagedObject(ob);
            IntPtr    tp = Runtime.PyObject_TYPE(ob);
            ClassBase cb = (ClassBase)GetManagedObject(tp);

            if (cb.type != typeof(System.Delegate))
            {
                Exceptions.SetError(Exceptions.TypeError,
                                    "object is not callable");
                return(IntPtr.Zero);
            }

            CLRObject    co    = (CLRObject)ManagedType.GetManagedObject(ob);
            Delegate     d     = co.inst as Delegate;
            BindingFlags flags = BindingFlags.Public |
                                 BindingFlags.NonPublic |
                                 BindingFlags.Instance |
                                 BindingFlags.Static;

            MethodInfo   method = d.GetType().GetMethod("Invoke", flags);
            MethodBinder binder = new MethodBinder(method);

            return(binder.Invoke(ob, args, kw));
        }
All Usage Examples Of Python.Runtime.MethodBinder::Invoke