24 lines
640 B
C++
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);
|
|
}
|
|
|
|
}
|