public string name_space;
public Type parent;
public Type etype;
+ public Type nested_in;
public Assembly assembly;
public TypeAttributes attrs;
public int rank;
[MethodImplAttribute(MethodImplOptions.InternalCall)]
public extern override MethodInfo[] GetMethods (BindingFlags bindingAttr);
+ [MethodImplAttribute(MethodImplOptions.InternalCall)]
+ private static extern MethodInfo get_method (Type type, string name, Type[] types);
+
+
+ [MonoTODO]
protected override MethodInfo GetMethodImpl (string name, BindingFlags bindingAttr,
Binder binder,
CallingConventions callConvention,
Type[] types, ParameterModifier[] modifiers)
{
- // FIXME
- throw new NotImplementedException ();
+ return get_method (this, name, types);
}
public override Type GetNestedType( string name, BindingFlags bindingAttr)
continue;
if (types.Length > 0) {
- if (info.GetIndexParameters().Length != types.Length)
+ ParameterInfo[] parameterInfo = info.GetIndexParameters ();
+
+ if (parameterInfo.Length != types.Length)
+ continue;
+
+ int i;
+ bool match = true;
+
+ for (i = 0; i < types.Length; i ++)
+ if (parameterInfo [i].ParameterType != types [i]) {
+ match = false;
+ break;
+ }
+
+ if (!match)
continue;
-
- // fixme: compare parameters
}
if (null != ret)
public override string AssemblyQualifiedName {
get {
- return getFullName () + "," + Assembly.ToString ();
+ return getFullName () + ", " + Assembly.ToString ();
}
}
}
}
+ public override Type DeclaringType {
+ get {
+ MonoTypeInfo info;
+ get_type_info (_impl, out info);
+ return info.nested_in;
+ }
+ }
+
public override Type ReflectedType {
get {
- return null;
+ MonoTypeInfo info;
+ get_type_info (_impl, out info);
+ return info.nested_in;
}
}