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'引用。
有什么解决这个问题的建议吗?
提前谢谢你
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
你会得到冲突。