1

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 は有効なクラス インスタンスを返します。メソッドがすべての参照を正しくロードしていないと思われます。提案や回避策はありますか?

4

0 に答える 0