Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 从内存加载程序集(嵌入式Mono运行时)_C_Mono_Embed_Scriptengine - Fatal编程技术网

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

C 从内存加载程序集(嵌入式Mono运行时),c,mono,embed,scriptengine,C,Mono,Embed,Scriptengine,我想从内存中加载mono程序集。因此,我没有使用通常的mono_domain_assembly_open,而是使用mono_image_open_from_data。返回的图像和程序集正常,状态为MONO\u image\u OK m_valid = true; mono_set_dirs(assembliesDir.c_str(), configDir.c_str()); MonoImageOpenStatus status = MONO_I

我想从内存中加载mono程序集。因此,我没有使用通常的mono_domain_assembly_open,而是使用mono_image_open_from_data。返回的图像和程序集正常,状态为MONO\u image\u 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());
我得到我的类==NULL。当我使用通常的mono\u image\u open\u from\u data时,mono返回一个有效的类实例。
我怀疑该方法没有正确加载所有引用。你有什么建议或解决方法吗?

你有没有弄明白这一点?我们尝试了很多方法,但都没有成功,因为当你从内存加载程序集时,它不会自动加载其依赖项…实现这一点的一种方法是调用assembly.load from mono