3 * Copyright 2015 Xamarin Inc
4 * Licensed under the MIT license. See LICENSE file in the project root for full license information.
6 #ifndef __MONO_METADATA_ASSEMBLY_INTERNALS_H__
7 #define __MONO_METADATA_ASSEMBLY_INTERNALS_H__
11 #include <mono/metadata/assembly.h>
12 #include <mono/metadata/metadata-internals.h>
15 mono_assembly_get_assemblyref_checked (MonoImage
*image
, int index
, MonoAssemblyName
*aname
, MonoError
*error
);
17 MONO_API MonoImage
* mono_assembly_load_module_checked (MonoAssembly
*assembly
, uint32_t idx
, MonoError
*error
);
19 MonoAssembly
* mono_assembly_open_a_lot (const char *filename
, MonoImageOpenStatus
*status
, MonoAssemblyContextKind asmctx
);
21 MonoAssembly
* mono_assembly_load_full_nosearch (MonoAssemblyName
*aname
,
23 MonoAssemblyContextKind asmctx
,
24 MonoImageOpenStatus
*status
);
27 /* If predicate returns true assembly should be loaded, if false ignore it. */
28 typedef gboolean (*MonoAssemblyCandidatePredicate
)(MonoAssembly
*, gpointer
);
30 MonoAssembly
* mono_assembly_open_predicate (const char *filename
,
31 MonoAssemblyContextKind asmctx
,
32 MonoAssemblyCandidatePredicate pred
,
34 MonoImageOpenStatus
*status
);
36 MonoAssembly
* mono_assembly_load_from_predicate (MonoImage
*image
, const char *fname
,
37 MonoAssemblyContextKind asmctx
,
38 MonoAssemblyCandidatePredicate pred
,
40 MonoImageOpenStatus
*status
);
43 /* MonoAssemblyCandidatePredicate that compares the assembly name (name, version,
44 * culture, public key token) of the candidate with the wanted name, if the
45 * wanted name has a public key token (if not present, always return true).
46 * Pass the wanted MonoAssemblyName* as the user_data.
49 mono_assembly_candidate_predicate_sn_same_name (MonoAssembly
*candidate
, gpointer wanted_name
);
52 mono_assembly_binding_applies_to_image (MonoImage
* image
, MonoImageOpenStatus
*status
);
55 mono_assembly_load_from_assemblies_path (gchar
**assemblies_path
, MonoAssemblyName
*aname
, MonoAssemblyContextKind asmctx
);
57 #endif /* __MONO_METADATA_ASSEMBLY_INTERNALS_H__ */