Xamarin.iOS 项目上的 ServiceStack 客户端

本文关键字:ServiceStack 客户端 iOS 项目 Xamarin | 更新日期: 2023-09-27 18:35:35

我正在尝试在Xamarin iOS项目上使用ServiceStack客户端,在调试它时,我有以下异常:

"System.ArgumentException: PclExport.Instance 需要 已初始化"。

生成异常的代码如下所示:

try
    {
        string strReadParam = this.xmlParser.GetString("SyncUrl");
        CommonStatic.SyncWSUrl = strReadParam;
        var client = new JsonServiceClient(CommonStatic.SyncWSUrl);
        client.Timeout = new TimeSpan(0, 0, 0, 5, 0);
        var response = client.Get(new mSalesCheckConnectionRequest { DBSource = CommonStatic.DBSource, DBSourceInstance = CommonStatic.DBSourceInstance, DBName = CommonStatic.DBName, DBUsername = CommonStatic.DBUsername, DBPassword = CommonStatic.DBPassword });
        return;
    }
    catch (System.Net.WebException wex)
    {
    }

我正在使用ServiceStack.Interfaces,ServiceStack.Client.Pcl和ServiceStack.Text.Pcl,版本均为4.0.34。此外,我在6.0.7版本中引用了Newtonsoft.Json。

经过一些研究,我意识到iOS的PCL提供程序不是自动注册的,所以我在实例化新的Json服务客户端之前添加了"IosPclExportClient.Configure();",并在版本4.0.0.0引用了ServiceStack.Pcl.iOS.dll。

结果是以下错误:"不能在同一 Xamarin.iOS 项目中同时包含'monotouch.dll'和'Xamarin.iOS.dll'——'Xamarin.iOS.dll'被显式引用,而'monotouch.dll'被'ServiceStack.Pcl.iOS, Version=4.0.0.0, Culture=neutral, PublicKeyToken=null'引用。

有什么解决这个问题的建议吗?

提前谢谢你

Xamarin.iOS 项目上的 ServiceStack 客户端

iOS 应用程序中使用之前,当应用程序开始初始化 PCL 导出客户端时,需要调用IosPclExportClient.Configure();

所以在你的Main方法中:

static void Main (string[] args)
{
    // Configure ServiceStack Client
    IosPclExportClient.Configure();
    // Set AppDelegate
    UIApplication.Main (args, null, "AppDelegate");
}

我引用了ServiceStack.Pcl.iOS.dll版本4.0.0.0。

不再维护 ServiceStack 的 PCL 特定 NuGet 包,因为它们已使用特定配置文件合并到主 NuGet 包中。

您应该只在项目中包含ServiceStack.Client包。因此,删除项目中对 ServiceStack 的所有引用,清理构建,然后仅添加 ServiceStack.Client

如果你参考ServiceStack.Client.Pcl很好ServiceStack.Client你会得到冲突。