2

将我的 .NET 服务器和客户端项目升级到 4.0 RC 后,我得到 NullReference 异常,因为我的自定义 State 对象为空。我在 OnOpen 事件处理程序中实例化 state 属性,但在第一次调用的方法体中它已经为 null。

我检查了调试器,发现 this.GetHashCode() 在 OnOpen 事件处理程序和方法中返回不同的值,这意味着它是一个不同的实例。

这是一个已知问题吗?我认为这是非常基本的行为,可能在升级到新版本期间我错过了一些东西。

提前致谢。

4

2 回答 2

2

我设法理解了这个问题。使用 PluginAlias 时会发生这种情况。[XSocketMetadata(PluginAlias = 当属性被删除并且客户端使用完整的控制器名称时,一切都按预期工作,并且 GetHashCode 返回相同的 id。

我将复制代码推送到 GitHub: https ://github.com/amichel/PlayWithXSockets/tree/ReproduceBugs

于 2014-08-29T19:31:37.583 回答
1

使用别名时有一个错误(如您所见)。解决方法是使用控制器的类名或仅在小写字母中使用别名。

在你的情况下使用

[XSocketMetadata(PluginAlias = "test")]

会工作。

问候乌夫

于 2014-08-30T12:21:03.603 回答