gpt4 book ai didi

c# - SignalR 强类型集线器 TypeLoadException

转载 作者:太空狗 更新时间:2023-10-29 23:50:12 35 4
gpt4 key购买 nike

我在使用强类型集线器时遇到 TypeLoadException。我的界面是:

public interface IClientCallback
{
void callback<T>(T msg, string eventType);
void test(string msg, string eventType);
}

所有方法都在一个接口(interface)中,并且该接口(interface)不继承任何其他接口(interface)。

我的 Hub 类是:

public class ServiceHub : Hub<IClientCallback>
{
public static readonly string ServiceHubName = "ServiceHub";

public void Register(string name, string eventType)
{
Clients.All.test("hello", "world");
}
}

当我使用我的客户端应用程序调用集线器上的 Register 方法时,在集线器应用程序上,当它位于 Clients.All.test(...) 时,我收到一个异常:

TypeLoadException Method 'callback' in type 'Microsoft.AspNet.SignalR.Hubs.TypedClientBuilder.IClientCallbackImpl' from assembly 'Microsoft.AspNet.SignalR.Hubs.TypedClientBuilder, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.

我无法缩小导致抛出此异常的确切原因。一点帮助或建议将不胜感激。

最佳答案

经过几个小时的调试才发现问题出在泛型方法定义中。似乎它根本不支持。

因此,作为解决方法,可以将 msg 参数的类型更改为 object 并使 callback 方法不是通用的。进行此更改后,一切都应该正常工作。

我希望 Microsoft 至少会在文档中添加有关此限制的警告。

关于c# - SignalR 强类型集线器 TypeLoadException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33704266/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com