我写了一个代码来解析我的 android xamarin 应用程序中的 json 字符串。
var request = HttpWebRequest.Create(myUrl);
request.ContentType = "application/json";
request.Method = "GET";
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
if (response.StatusCode != HttpStatusCode.OK)
{
Console.Out.WriteLine("Error fetching data. Server returned status code: {0}", response.StatusCode);
}
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
string content = reader.ReadToEnd();
if (string.IsNullOrWhiteSpace(content))
{
Console.Out.WriteLine("Response contained empty body...");
}
else
{
List<BillsTableFields> billList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<BillsTableFields>>(content);
//return block
}
}
}
但它会引发构建错误。任何帮助将不胜感激,因为我是 xamarin 的新手,我在其他任何地方都找不到任何支持。
我得到的构建错误如下
C:\Program Files\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(5,5):错误 MSB4018:“LinkAssemblies”任务意外失败。
Mono.Cecil.ResolutionException:无法解析 System.Diagnostics.TraceLevel
在 Mono.Linker.Steps.MarkStep.MarkType(TypeReference 引用)
在 Mono.Linker.Steps.MarkStep.MarkField(FieldReference 引用)
在 Mono.Linker.Steps.MarkStep.InitializeFields(TypeDefinition 类型)
在 Mono.Linker.Steps.MarkStep.InitializeType(TypeDefinition 类型)
在 Mono.Linker.Steps.MarkStep.InitializeAssembly(AssemblyDefinition assembly)
在 Mono.Linker.Steps.MarkStep.Initialize()
在 Mono.Linker.Steps.MarkStep.Process(LinkContext 上下文)
在 Mono.Linker.Pipeline.Process(LinkContext 上下文)
在 MonoDroid.Tuner.Linker.Process(LinkerOptions 选项,LinkContext& 上下文)
在 Xamarin.Android.Tasks.LinkAssemblies.Execute()
在 Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
在 Microsoft.Build.BackEnd.TaskBuilder.d__20.MoveNext() (MSB4018) (LoginApptest)
最佳答案
如果链接器因“无法找到类型 blah blah”而失败,那么这通常意味着您在应用程序中的某处使用了桌面 .Net 库。如果是 JSON.Net,去掉桌面程序集,使用组件商店上的 JSON.Net 版本(这是 Xamarin 的 NuGet 版本,除了有些东西是付费的)。
我还会确保您拥有最新版本的 Xamarin.Android。