从内存加载程序集(嵌入式Mono运行时)

时间:2013-02-26 11:06:30

标签: c mono embed scriptengine

我想从内存加载单声道程序集。因此,我使用 mono_image_open_from_data 而不是使用通常的mono_domain_assembly_open。返回的图像和装配正常,状态为 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会返回一个有效的类实例。 我怀疑该方法没有正确加载所有引用。您有任何建议或解决方法吗?

0 个答案:

没有答案