[ComDefaultInterfaceAttribute (typeof (_MethodBase))]
[Serializable]
[ClassInterface(ClassInterfaceType.None)]
+#if MOBILE
+ public abstract class MethodBase: MemberInfo {
+#else
public abstract class MethodBase: MemberInfo, _MethodBase {
-
+#endif
[MethodImplAttribute (MethodImplOptions.InternalCall)]
public extern static MethodBase GetCurrentMethod ();
//
// This is a quick version for our own use. We should override
// it where possible so that it does not allocate an array.
+ // They cannot be abstract otherwise we break public contract
//
- internal virtual int GetParameterCount ()
+ internal virtual ParameterInfo[] GetParametersInternal ()
+ {
+ // Override me
+ return GetParameters ();
+ }
+
+ internal virtual int GetParametersCount ()
{
- throw new NotImplementedException ("must be implemented");
+ // Override me
+ return GetParametersInternal ().Length;
}
internal virtual Type GetParameterType (int pos) {
}
#endif
+#if !MOBILE
void _MethodBase.GetIDsOfNames ([In] ref Guid riid, IntPtr rgszNames, uint cNames, uint lcid, IntPtr rgDispId)
{
throw new NotImplementedException ();
{
throw new NotImplementedException ();
}
+#endif
}
}