public static objc_method FromMethodInfo(MethodInfo method) { objc_method objc_method = new objc_method (); string name = SelectorFromMethodInfo (method); string types = SignatureFromMethodInfo (method); foreach (ExportAttribute exattr in Attribute.GetCustomAttributes (method, typeof (ExportAttribute))) { name = exattr.Selector == null ? name : exattr.Selector; types = exattr.Signature == null ? types : exattr.Signature; } objc_method.name = Marshal.StringToHGlobalAnsi (name); objc_method.types = Marshal.StringToHGlobalAnsi (types); MethodInfo method_proxy = BuildMethodProxy (method); objc_method.imp = Delegate.CreateDelegate (MethodImplementation.FromMethodInfo (method_proxy), method_proxy); return objc_method; }
public static objc_method FromConstructorInfo(ConstructorInfo constructor) { objc_method objc_method = new objc_method (); string name = SelectorFromConstructorInfo (constructor); string types = SignatureFromConstructorInfo (constructor); foreach (ExportAttribute exattr in Attribute.GetCustomAttributes (constructor, typeof (ExportAttribute))) { name = exattr.Selector == null ? name : exattr.Selector; types = exattr.Signature == null ? types : exattr.Signature; } objc_method.name = Marshal.StringToHGlobalAnsi (name); objc_method.types = Marshal.StringToHGlobalAnsi (types); // FIXME ConstructorInfo constructor_proxy = BuildConstructorProxy (constructor); objc_method.imp = Delegate.CreateDelegate (MethodImplementation.FromConstructorInfo (constructor_proxy), null); return objc_method; }
public static objc_method FromMethodInfo(MethodInfo method) { objc_method objc_method = new objc_method(); string name = SelectorFromMethodInfo(method); string types = SignatureFromMethodInfo(method); foreach (ExportAttribute exattr in Attribute.GetCustomAttributes(method, typeof(ExportAttribute))) { name = exattr.Selector == null ? name : exattr.Selector; types = exattr.Signature == null ? types : exattr.Signature; } objc_method.name = Marshal.StringToHGlobalAnsi(name); objc_method.types = Marshal.StringToHGlobalAnsi(types); MethodInfo method_proxy = BuildMethodProxy(method); objc_method.imp = Delegate.CreateDelegate(MethodImplementation.FromMethodInfo(method_proxy), method_proxy); return(objc_method); }
public static objc_method FromConstructorInfo(ConstructorInfo constructor) { objc_method objc_method = new objc_method(); string name = SelectorFromConstructorInfo(constructor); string types = SignatureFromConstructorInfo(constructor); foreach (ExportAttribute exattr in Attribute.GetCustomAttributes(constructor, typeof(ExportAttribute))) { name = exattr.Selector == null ? name : exattr.Selector; types = exattr.Signature == null ? types : exattr.Signature; } objc_method.name = Marshal.StringToHGlobalAnsi(name); objc_method.types = Marshal.StringToHGlobalAnsi(types); // FIXME ConstructorInfo constructor_proxy = BuildConstructorProxy(constructor); objc_method.imp = Delegate.CreateDelegate(MethodImplementation.FromConstructorInfo(constructor_proxy), null); return(objc_method); }