XSockets.NET 4.0 - 在方法调用时创建的新控制器实例

时间:2014-08-29 18:11:34

标签: xsockets.net

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

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

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

提前致谢。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

使用别名时有一个错误(正如您所知)。 解决方法是要么使用控制器的类名,要么只在较低的外壳中使用别名。

在你的情况下使用

[XSocketMetadata(PluginAlias = "test")]

会起作用。

此致 Uffe