#include "Mono.hpp" namespace Mono { Assembly::Assembly(MonoAssembly *ptr) : ptr(ptr), image(mono_assembly_get_image(ptr)) { } Assembly::~Assembly(){ // Tt causes SEGFAULT. // Is it even possible to unload assembly from domain? // mono_assembly_close(ptr); } std::shared_ptr Assembly::getClass(const std::string &name_space, const std::string &name){ MonoClass* ptr = mono_class_from_name(image, name_space.c_str(), name.c_str()); if(!ptr) throw UsefulException(format("can't find class '%s.%s'", name_space.c_str(), name.c_str())); return std::make_shared(ptr, name_space, name); } }