### Godot version

4.0-stable_mono_win64

### System information

Windows 11 22H2

### Issue description

> 
![Script](https://user-images.githubusercontent.com/43518523/224719220-9ab4a56c-2e9c-4c1b-bebe-d62eb23e372b.png)
![Bug](https://user-images.githubusercontent.com/43518523/224719256-34436394-6d89-4a2e-a588-f9f11ae06ea1.png)
Expected: The parameter type of OnChildEnteredTree (underlined) in the dialog is Node, not Object.

### Steps to reproduce

1. Write a public (signal listener) C# function with a Node parameter.
2. Build .NET project.
3. Try to connect some suitable signal (e.g. "child_entered_tree") to that function, and it won't appear in the Pick dialog if `Compatible Methods Only` is on.

### Minimal reproduction project

[SignalParamBug.zip](https://github.com/godotengine/godot/files/10958019/SignalParamBug.zip)

replace_placeholder = false;
					scr->pending_replace_placeholders.erase(obj->get_instance_id());
				}
#ifdef TOOLS_ENABLED
				if (si) {
					
					
					CRASH_COND(!si->is_placeholder());
					if (replace_placeholder || scr->is_tool() || ScriptServer::is_scripting_enabled()) {
						
						CSharpScript::StateBackup &state_backup = scr->pending_reload_state[obj_id];
						
						si->get_property_state(state_backup.properties);
						ScriptInstance *instance = scr->instance_create(obj);
						if (instance) {
							scr->placeholders.erase(static_cast<PlaceHolderScriptInstance *>(si));
							scr->pending_replace_placeholders.erase(obj->get_instance_id());
							obj->set_script_instance(instance);
						}
					}
					continue;
				}
#else
				CRASH_COND(si != nullptr);
#endif
				
				if (replace_placeholder || scr->is_tool() || ScriptServer::is_scripting_enabled()) {
					
					ScriptInstance *instance = scr->instance_create(obj);