Geo*_*rge 6 c# xamarin.ios servicestack
我正在尝试在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)
{
}
Run Code Online (Sandbox Code Playgroud)
我正在使用ServiceStack.Interfaces,ServiceStack.Client.Pcl和ServiceStack.Text.Pcl都具有版本4.0.34.另外,我在6.0.7版本中引用了Newtonsoft.Json.
经过一些研究,我意识到iOS的PCL提供程序没有自动注册,所以我在实例化新的Json服务客户端和我引用的版本4.0.0.0的ServiceStack.Pcl.iOS.dll之前添加了"IosPclExportClient.Configure();" .
结果是以下错误:"不能同时包含'monotouch.dll'和'Xamarin.iOS.dll'在同一个Xamarin.iOS项目中 - 'Xamarin.iOS.dll'被明确引用,而'monotouch.dll'是由'ServiceStack.Pcl.iOS引用,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = null'."
有什么建议可以解决这个问题吗?
先感谢您
IosPclExportClient.Configure();在iOS应用程序中使用之前,您需要在应用程序开始初始化PCL导出客户端时调用.
所以在你的Main方法中:
static void Main (string[] args)
{
// Configure ServiceStack Client
IosPclExportClient.Configure();
// Set AppDelegate
UIApplication.Main (args, null, "AppDelegate");
}
Run Code Online (Sandbox Code Playgroud)
我在版本4.0.0.0引用了ServiceStack.Pcl.iOS.dll.
不再维护ServiceStack的PCL特定NuGet包,因为它们已使用特定配置文件合并到主NuGet包中.
您应该只ServiceStack.Client在项目中包含该包.因此,删除项目中对ServiceStack的所有引用,清理构建,然后添加ServiceStack.Client.
如果你引用的ServiceStack.Client.Pcl很好,ServiceStack.Client你就会发生冲突.