mono アセンブリをメモリからロードしたい。したがって、通常の mono_domain_assembly_open を使用する代わりに、 mono_image_open_from_data を使用します。返された画像とアセンブリは OK で、ステータスはMONO_IMAGE_OKです。
m_valid = true;
mono_set_dirs(assembliesDir.c_str(), configDir.c_str());
MonoImageOpenStatus status = MONO_IMAGE_ERROR_ERRNO;
m_image = mono_image_open_from_data(data, size, 1, &status);
if(status != MONO_IMAGE_OK || m_image == NULL) {
m_valid = false;
return;
}
m_assembly = mono_assembly_load_from( m_image, assembliesName.c_str(), &status);
if(status != MONO_IMAGE_OK || m_assembly == NULL) {
m_valid = false;
return;
}
ただし、次を使用してアセンブリからクラスを取得しようとすると:
MonoClass *my_class = mono_class_from_name (m_image, name_space.c_str(), name.c_str());
my_class == NULLを取得します。通常のmono_image_open_from_dataを使用すると、 Mono は有効なクラス インスタンスを返します。メソッドがすべての参照を正しくロードしていないと思われます。提案や回避策はありますか?