[netcore] Make the load hook ALC-aware (#16012)
[mono-project.git] / mono / metadata / reflection-internals.h
blobda4e51c6e3d852d99002b7b5f5dcf2d4645bc44a
1 /**
2 * \file
3 * Copyright 2014 Xamarin Inc
4 * Copyright 2016 Microsoft
5 * Licensed under the MIT license. See LICENSE file in the project root for full license information.
6 */
7 #ifndef __MONO_METADATA_REFLECTION_INTERNALS_H__
8 #define __MONO_METADATA_REFLECTION_INTERNALS_H__
10 #include <mono/metadata/object-internals.h>
11 #include <mono/metadata/reflection.h>
12 #include <mono/metadata/class-internals.h>
13 #include <mono/utils/mono-compiler.h>
14 #include <mono/utils/mono-error.h>
16 /* Safely access System.Reflection.Assembly from native code */
17 TYPED_HANDLE_DECL (MonoReflectionAssembly)
19 /* Safely access System.Reflection.Emit.TypeBuilder from native code */
20 TYPED_HANDLE_DECL (MonoReflectionTypeBuilder)
22 MonoReflectionAssemblyHandle
23 mono_domain_try_type_resolve_name (MonoDomain *domain, MonoStringHandle name, MonoError *error);
25 MonoReflectionAssemblyHandle
26 mono_domain_try_type_resolve_typebuilder (MonoDomain *domain, MonoReflectionTypeBuilderHandle typebuilder, MonoError *error);
28 MonoReflectionTypeBuilderHandle
29 mono_class_get_ref_info (MonoClass *klass);
31 gboolean
32 mono_reflection_parse_type_checked (char *name, MonoTypeNameParse *info, MonoError *error);
34 gboolean
35 mono_reflection_is_usertype (MonoReflectionTypeHandle ref);
37 MonoReflectionType*
38 mono_reflection_type_resolve_user_types (MonoReflectionType *type, MonoError *error);
40 MonoType *
41 mono_reflection_type_handle_mono_type (MonoReflectionTypeHandle ref_type, MonoError *error);
43 MonoType*
44 mono_reflection_get_type_checked (MonoImage *rootimage, MonoImage* image, MonoTypeNameParse *info, gboolean ignorecase, gboolean search_mscorlib, gboolean *type_resolve, MonoError *error);
46 MonoType*
47 mono_reflection_type_from_name_checked (char *name, MonoImage *image, MonoError *error);
49 guint32
50 mono_reflection_get_token_checked (MonoObjectHandle obj, MonoError *error);
52 MonoObject*
53 mono_custom_attrs_get_attr_checked (MonoCustomAttrInfo *ainfo, MonoClass *attr_klass, MonoError *error);
55 MonoCustomAttrInfo*
56 mono_reflection_get_custom_attrs_info_checked (MonoObjectHandle obj, MonoError *error);
58 MonoArrayHandle
59 mono_reflection_get_custom_attrs_data_checked (MonoObjectHandle obj, MonoError *error);
61 MonoArrayHandle
62 mono_reflection_get_custom_attrs_by_type_handle (MonoObjectHandle obj, MonoClass *attr_klass, MonoError *error);
64 MonoArray*
65 mono_reflection_get_custom_attrs_blob_checked (MonoReflectionAssembly *assembly, MonoObject *ctor, MonoArray *ctorArgs, MonoArray *properties, MonoArray *propValues, MonoArray *fields, MonoArray* fieldValues, MonoError *error);
67 MonoCustomAttrInfo*
68 mono_custom_attrs_from_index_checked (MonoImage *image, uint32_t idx, gboolean ignore_missing, MonoError *error);
69 MonoCustomAttrInfo*
70 mono_custom_attrs_from_method_checked (MonoMethod *method, MonoError *error);
71 MonoCustomAttrInfo*
72 mono_custom_attrs_from_class_checked (MonoClass *klass, MonoError *error);
73 MonoCustomAttrInfo*
74 mono_custom_attrs_from_assembly_checked (MonoAssembly *assembly, gboolean ignore_missing, MonoError *error);
75 MonoCustomAttrInfo*
76 mono_custom_attrs_from_property_checked (MonoClass *klass, MonoProperty *property, MonoError *error);
77 MonoCustomAttrInfo*
78 mono_custom_attrs_from_event_checked (MonoClass *klass, MonoEvent *event, MonoError *error);
79 MonoCustomAttrInfo*
80 mono_custom_attrs_from_field_checked (MonoClass *klass, MonoClassField *field, MonoError *error);
81 MonoCustomAttrInfo*
82 mono_custom_attrs_from_param_checked (MonoMethod *method, uint32_t param, MonoError *error);
85 char*
86 mono_identifier_unescape_type_name_chars (char* identifier);
88 MonoImage *
89 mono_find_dynamic_image_owner (void *ptr);
91 MonoReflectionAssemblyHandle
92 mono_assembly_get_object_handle (MonoDomain *domain, MonoAssembly *assembly, MonoError *error);
94 MonoReflectionType*
95 mono_type_get_object_checked (MonoDomain *domain, MonoType *type, MonoError *error);
97 MonoReflectionTypeHandle
98 mono_type_get_object_handle (MonoDomain *domain, MonoType *type, MonoError *error);
100 MonoReflectionField*
101 mono_field_get_object_checked (MonoDomain *domain, MonoClass *klass, MonoClassField *field, MonoError *error);
103 MonoReflectionFieldHandle
104 mono_field_get_object_handle (MonoDomain *domain, MonoClass *klass, MonoClassField *field, MonoError *error);
106 MonoReflectionMethod*
107 mono_method_get_object_checked (MonoDomain *domain, MonoMethod *method, MonoClass *refclass, MonoError *error);
109 MonoReflectionMethodHandle
110 mono_method_get_object_handle (MonoDomain *domain, MonoMethod *method, MonoClass *refclass, MonoError *error);
112 MonoReflectionProperty*
113 mono_property_get_object_checked (MonoDomain *domain, MonoClass *klass, MonoProperty *property, MonoError *error);
115 MonoReflectionPropertyHandle
116 mono_property_get_object_handle (MonoDomain *domain, MonoClass *klass, MonoProperty *property, MonoError *error);
118 MonoReflectionEventHandle
119 mono_event_get_object_handle (MonoDomain *domain, MonoClass *klass, MonoEvent *event, MonoError *error);
121 MonoReflectionModuleHandle
122 mono_module_get_object_handle (MonoDomain *domain, MonoImage *image, MonoError *error);
124 MonoReflectionModuleHandle
125 mono_module_file_get_object_handle (MonoDomain *domain, MonoImage *image, int table_index, MonoError *error);
127 MonoReflectionMethodBodyHandle
128 mono_method_body_get_object_handle (MonoDomain *domain, MonoMethod *method, MonoError *error);
130 MonoClass *
131 mono_class_from_mono_type_handle (MonoReflectionTypeHandle h);
133 MonoMethod*
134 mono_runtime_get_caller_no_system_or_reflection (void);
136 MonoAssembly*
137 mono_runtime_get_caller_from_stack_mark (MonoStackCrawlMark *stack_mark);
139 void
140 mono_reflection_get_param_info_member_and_pos (MonoReflectionParameterHandle p, MonoObjectHandle member_impl, int *out_position);
142 #endif /* __MONO_METADATA_REFLECTION_INTERNALS_H__ */