SingalR in Xamarin.Forms

时间:2017-02-05 01:33:57

标签: c# xamarin xamarin.ios xamarin.android xamarin.forms

我正在尝试为SignalR创建一个Xamarin.Forms PCL客户端。我发现每个教程都是如何将SignalR添加到Xamarin.Android或Xamarin.iOS中。如何将SignalR添加到Xamarin.Forms项目?

  1. 我应该创建一个单独的PCL,将其命名为“Proxy”,然后在Xamarin.iOS,Android和Windows Mobile项目中使用此PCL吗?
  2. 如果1),我是否应该在每个项目中添加SignalR(除了PCL,我真正使用它)?
  3. 我应该在创建Xamarin.Forms解决方案时添加到默认创建的PCL吗?
  4. 感谢您的帮助,

    以下是我遇到的问题: 我有一个完全工作的Xamarin.Forms PCL项目。我删除了所有的窗口东西。我刚离开PCL,iOS和Android项目。有用!我只添加了CocosSharp,但不使用它。平原,空虚,从未接触过Xamarin.Forms。然后我将SingalR添加到PCL项目中。顺便说一下,跑步!但是当我添加JUST这一行时:

    var connection = new HubConnection("http://localhost:52128");   
    

    它甚至没有编译。我收到了错误:

      

    加载程序集时出现异常:System.IO.FileNotFoundException:无法加载程序集'Newtonsoft.Json,Version = 6.0.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed'。也许它在Mono for Android个人资料中不存在

    我完全失去了。

    我试过了:

    1. 仅在PCL上安装nuget - 错误

    2. 在每个项目上安装 - 错误

    3. 创建新的PCL,在那里实现该行,将其添加为主PCL的引用。从第二个PCL调用方法 - 错误。

1 个答案:

答案 0 :(得分:4)

我遇到了与您相同的错误,似乎在安装SignalRMicrosoft.AspNet.SignalR.Client包时,依赖包无法自动安装,引用以某种方式损坏。

要解决此问题,您可以手动安装这些软件包。

与Nuget分开安装以下三个包:

SignalRMicrosoft.AspNet.SignalR.Client

Newtonsoft.Json

Microsoft.Net.Http