void GDMonoProperty::set_value(MonoObject *p_object, void **p_params, MonoObject **r_exc) { MonoObject *exc = NULL; mono_property_set_value(mono_property, p_object, p_params, &exc); if (exc) { if (r_exc) { *r_exc = exc; } else { GDMonoUtils::print_unhandled_exception(exc); } } }
void CScriptClass::SetPropertyValue(mono::object object, const char *propertyName, mono::object newValue, bool throwOnFail) { MonoProperty *pProperty = GetMonoProperty(propertyName, true); if(pProperty) { void *args[1]; args[0] = newValue; mono_property_set_value(pProperty, object, args, nullptr); } else if(throwOnFail) GetMonoScriptSystem()->GetCorlibAssembly()->GetException("System", "MissingMemberException", "Failed to locate property %s in class %s", propertyName, GetName())->Throw(); }
void ml_set_prop_string(MonoObject *obj, char *field, char *data) { MonoClass *klass; MonoProperty *prop; MonoString *str; gpointer args[1]; klass = mono_object_get_class(obj); prop = mono_class_get_property_from_name(klass, field); str = mono_string_new(ml_get_domain(), data); args[0] = str; mono_property_set_value(prop, obj, args, NULL); }
void property_set_value(MonoProperty *p_prop, void *p_obj, void **p_params, MonoException **p_exc) { GD_MONO_BEGIN_RUNTIME_INVOKE; mono_property_set_value(p_prop, p_obj, p_params, (MonoObject **)p_exc); GD_MONO_END_RUNTIME_INVOKE; }