public static void RegisterScriptableObject(string scriptKey, object instance)
{
CheckThread();
// no call to CheckHtmlAccess(); -- see DRT364
CheckName(scriptKey, "scriptKey");
if (instance == null)
{
throw new ArgumentNullException("instance");
}
Type t = instance.GetType();
if (!t.IsPublic && !t.IsNestedPublic)
{
throw new InvalidOperationException("'instance' type is not public.");
}
if (!ManagedObject.IsScriptable(t))
{
throw new ArgumentException("No public [ScriptableMember] method was found.", "instance");
}
ScriptObject sobj = instance as ScriptObject;
if (sobj == null)
{
sobj = new ManagedObject(instance);
}
NativeMethods.moonlight_scriptable_object_register(PluginHost.Handle, scriptKey, sobj.Handle);
}