Xamarin试图让用户从webservice立即崩溃

时间:2013-12-09 12:30:50

标签: c# json redis servicestack xamarin

你好再次stackoverflow,

我正在关注如何在Xamarin中构建Android应用程序的教程,我遇到了一个我无法自行解决的错误。 希望你们中的任何人都可以了解如何从这里开始:

此代码是从教程本身复制的(来源:pluralsight)

private JsonServiceClient client;
private IList<User> users;

void PopulateSelectUsers ()
    {
        var response = client.Get(new Users());
        users = response.Users.ToList ();

        var names = users.Select (u => u.Name);

        var usersSpinner = FindViewById<Spinner> (Resource.Id.usersSpinner);
        usersSpinner.Adapter = new ArrayAdapter<string> (this, Android.Resource.Layout.SimpleListItem1, names.ToArray ());
    }

用户”是一个请求:

public object Get(Users request)
{
    return new UsersResponse { Users = Repository.GetUsers() };
}

[Route("/users", "GET")]
public class Users : IReturn<UsersResponse>
{
}

public class UsersResponse
{
    public IEnumerable<User> Users { get; set; }
}

但是,一旦Xamarin读过这行代码:

var response = client.Get(new Users());

然后模拟器中的应用程序崩溃了,Xamarin没有留下任何关于发生了什么或如何修复它的信息..

看起来这个代码在教程中起作用,正如我之前提到的,Xamarin没有留下关于发生了什么或如何解决它的信息,所以我的问题是,如果你们中的一个人知道发生了什么或者可能是一种方式要解决这个问题。

另外值得一提的是,我正在使用redis来存储用户。

如果您想查看用户服务,请点击此处: http://shan13alwo.cloudapp.net/api/metadata 您可以通过将JSON GET发送到http://shan13alwo.cloudapp.net/api/users

来检查代码是否有效

提前谢谢你,

更新: 我意识到我可能不清楚我想做什么,但要简化。我想做的是从我的redis数据库中获取我的用户(ienumerable)并将它们存储在List中。在Xamarin中使用此代码不起作用:

var response = client.Get(new Users()); users = response.Users.ToList ();

1 个答案:

答案 0 :(得分:1)

正如斯科特先前向我指出的那样在Stackoverflow上做的另一个话题: ServiceStack v4刚刚发布,在Xamarin和Visual Studio中使用不同版本的servicestack库导致了这种奇怪的行为。

回到ServiceStack的V3解决了我的问题。

我要感谢斯科特的帮助,并想问最后一件事: 我在哪里可以下载适用于Android的ServiceStack库的VERSION 3免费许可版本? (想想它叫做“AndroidIndie”) 使用ServiceStack的lib文件夹中的库下载和编译解决方案会生成“评估软件,构建有效24小时”。

提前谢谢你。