ougge/src/Mono/Assembly.cpp
2024-08-22 08:36:01 +05:00

24 lines
640 B
C++

#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<Class> 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<Class>(ptr, name_space, name);
}
}