#include <mono/metadata/object.h>
+G_BEGIN_DECLS
+
typedef struct MonoTypeNameParse MonoTypeNameParse;
struct MonoTypeNameParse {
char *name;
MonoAssemblyName assembly;
GList *modifiers; /* 0 -> byref, -1 -> pointer, > 0 -> array rank */
+ GPtrArray *type_arguments;
GList *nested;
};
int mono_reflection_parse_type (char *name, MonoTypeNameParse *info);
MonoType* mono_reflection_get_type (MonoImage* image, MonoTypeNameParse *info, gboolean ignorecase, gboolean *type_resolve);
+void mono_reflection_free_type_info (MonoTypeNameParse *info);
MonoType* mono_reflection_type_from_name (char *name, MonoImage *image);
guint32 mono_reflection_get_token (MonoObject *obj);
/* note: this one is slightly different: we keep the whole array of params in the cache */
MonoArray* mono_param_get_objects (MonoDomain *domain, MonoMethod *method);
MonoReflectionMethodBody* mono_method_body_get_object (MonoDomain *domain, MonoMethod *method);
-MonoObject* mono_get_dbnull_object (MonoDomain *domain);
+MonoObject *mono_get_dbnull_object (MonoDomain *domain);
+
+MonoArray* mono_reflection_get_custom_attrs_by_type (MonoObject *obj, MonoClass *attr_klass);
MonoArray* mono_reflection_get_custom_attrs (MonoObject *obj);
+MonoArray* mono_reflection_get_custom_attrs_data (MonoObject *obj);
MonoArray* mono_reflection_get_custom_attrs_blob (MonoReflectionAssembly *assembly, MonoObject *ctor, MonoArray *ctorArgs, MonoArray *properties, MonoArray *porpValues, MonoArray *fields, MonoArray* fieldValues);
MonoCustomAttrInfo* mono_reflection_get_custom_attrs_info (MonoObject *obj);
MonoBoolean mono_declsec_get_class_action (MonoClass *klass, guint32 action, MonoDeclSecurityEntry *entry);
MonoBoolean mono_declsec_get_assembly_action (MonoAssembly *assembly, guint32 action, MonoDeclSecurityEntry *entry);
+G_END_DECLS
+
#endif /* __METADATA_REFLECTION_H__ */