首页 > 解决方案 > Xamarin 后门调用 - 注册商在方法中发现签名不匹配

问题描述

我想在 Xamarin ui 测试中调用后门。对于一种方法,我需要传递一些参数,但它会得到签名不匹配。我遵循了官方文档(https://developer.xamarin.com/api/member/Xamarin.UITest.IApp.Invoke/p/System.String/System.Object[]/)所以不知道为什么或在哪里出错。

这是我的应用程序代码(AppDelegate.cs)

    [Export("ConfigurationBackdoor:")]
    public void ConfigurationBackdoor(NSString configuration, NSString configurationName)
            {
   BackdoorHelper.ConfigurationEventBackdoor(configuration, configurationName);
            }

这是在我的 xamarin ui 测试代码中:

object[] arguments = { "arg1", "arg2" };
AppContext.App.Invoke("ConfigurationBackdoor:", arguments);

有人知道为什么这不起作用吗?顺便说一句,在 Android 上它运行良好。提前致谢!

标签: c#xamarinxamarin.uitest

解决方案


你可以通过像这样联系你的参数来解决这个问题:

object arguments = "arg1"+" "+"arg2";
AppContext.App.Invoke("ConfigurationBackdoor:", arguments);

然后你可以像这样在你的后门方法中处理它:

[Export("ConfigurationBackdoor:")]
 public void ConfigurationBackdoor(NSString configurations)
 { 
     string cr = (string) configurations;
     string[] confs= cr.Split(' ');
     BackdoorHelper.ConfigurationEventBackdoor(confs[0], confs[1]);
 }

推荐阅读