### Godot version

4.0.stable-mono

### System information

Windows 10 64bits

### Issue description

Calling WebRTCPeerConnection.CreateDataChannel in C# throws External component has thrown an exception.
But it works correctly if implemented in GDScript

### Steps to reproduce

Setup a project with WebRTC and create an empty scene that derives from Node and assigns it this script:

```c#
using Godot;
using System;

public partial class Bug : Node
{
	public override void _Ready()
	{
		var peerConnection = new WebRtcPeerConnection();
		var peerDataChannel = peerConnection.CreateDataChannel("chat", new Godot.Collections.Dictionary {
			{"id", 42},
			{"negotiated", true},
		});
		GD.Print($"{peerDataChannel.GetId()}");
	}
}
```
Running this scene should show the game window opens and then immediately close with this stack trace in the console:

```error
2023-03-12 03:10:57.853 DEBUG [10628] [rtc::impl::Init::doInit@110] Global initialization
2023-03-12 03:10:57.856 DEBUG [14980] [rtc::impl::Certificate::Generate@213] Generating certificate (OpenSSL)
ERROR: Condition "_instance_bindings != nullptr" is true.
   at: set_instance_binding (core/object/object.cpp:1689)
ERROR: Parameter "strong_gchandle.value" is null.
   at: setup_csharp_script_binding (modules/mono/csharp_script.cpp:1225)
ERROR: Condition "!script_binding.inited" is true. Returning: { nullptr }
   at: godotsharp_internal_unmanaged_get_instance_binding_managed (modules/mono/glue/runtime_interop.cpp:234)
ERROR: Parameter "strong_gchandle.value" is null.
   at: setup_csharp_script_binding (modules/mono/csharp_script.cpp:1225)
ERROR: Condition "!script_binding.inited" is true. Returning: { nullptr }
   at: godotsharp_internal_unmanaged_instance_binding_create_managed (modules/mono/glue/runtime_interop.cpp:247)
ERROR: FATAL: Condition "!rc_owner" is true.
   at: _instance_binding_reference_callback (modules/mono/csharp_script.cpp:1311)
Fatal error. System.Runtime.InteropServices.SEHException (0x80004005): External component has thrown an exception.
   at Godot.NativeInterop.NativeFuncs.godotsharp_ref_destroy(Godot.NativeInterop.godot_ref ByRef)
   at Godot.NativeInterop.godot_ref.Dispose()
   at Godot.NativeCalls.godot_icall_2_1152(IntPtr, IntPtr, System.String, Godot.NativeInterop.godot_dictionary)
   at Godot.WebRtcPeerConnection.CreateDataChannel(System.String, Godot.Collections.Dictionary)
   at Bug._Ready()
   at Godot.Node.InvokeGodotClassMethod(Godot.NativeInterop.godot_string_name ByRef, Godot.NativeInterop.NativeVariantPtrArgs, Godot.NativeInterop.godot_variant ByRef)
   at Godot.CanvasItem.InvokeGodotClassMethod(Godot.NativeInterop.godot_string_name ByRef, Godot.NativeInterop.NativeVariantPtrArgs, Godot.NativeInterop.godot_variant ByRef)
   at Godot.Node2D.InvokeGodotClassMethod(Godot.NativeInterop.godot_string_name ByRef, Godot.NativeInterop.NativeVariantPtrArgs, Godot.NativeInterop.godot_variant ByRef)
   at Bug.InvokeGodotClassMethod(Godot.NativeInterop.godot_string_name ByRef, Godot.NativeInterop.NativeVariantPtrArgs, Godot.NativeInterop.godot_variant ByRef)
   at Godot.Bridge.CSharpInstanceBridge.Call(IntPtr, Godot.NativeInterop.godot_string_name*, Godot.NativeInterop.godot_variant**, Int32, Godot.NativeInterop.godot_variant_call_error*, Godot.NativeInterop.godot_variant*)
```

Attaching the same working code in gdscript:
```gdscript
extends Node

# this works correctly in gdscript
func _ready():
	var peerConnection := WebRTCPeerConnection.new()
	var peerDataChannel := peerConnection.create_data_channel("chat", {
		"id": 4,
		"negotiated": true,
	})
	print(peerDataChannel.get_id())
```

### Minimal reproduction project

[WebRtcBug.zip](https://github.com/godotengine/godot/files/11008767/WebRtcBug.zip)

(Only WebRtc Windows DLLs are included, otherwise that file would be too big, the whole zip can be found here : https://github.com/godotengine/webrtc-native/releases/download/1.0.0-rc1/godot-gdnative-webrtc.zip)
if (script->member_info.has(p_name)) {
		if (r_is_valid) {
			*r_is_valid = true;
		}
		return script->member_info[p_name].type;
	}
	if (r_is_valid) {
		*r_is_valid = false;
	}
	return Variant::NIL;
}
bool CSharpInstance::property_can_revert(const StringName &p_name) const {