将我的 .NET 服务器和客户端项目升级到 4.0 RC 后,我得到 NullReference 异常,因为我的自定义 State 对象为空。我在 OnOpen 事件处理程序中实例化 state 属性,但在第一次调用的方法体中它已经为 null。
我检查了调试器,发现 this.GetHashCode() 在 OnOpen 事件处理程序和方法中返回不同的值,这意味着它是一个不同的实例。
这是一个已知问题吗?我认为这是非常基本的行为,可能在升级到新版本期间我错过了一些东西。
提前致谢。
将我的 .NET 服务器和客户端项目升级到 4.0 RC 后,我得到 NullReference 异常,因为我的自定义 State 对象为空。我在 OnOpen 事件处理程序中实例化 state 属性,但在第一次调用的方法体中它已经为 null。
我检查了调试器,发现 this.GetHashCode() 在 OnOpen 事件处理程序和方法中返回不同的值,这意味着它是一个不同的实例。
这是一个已知问题吗?我认为这是非常基本的行为,可能在升级到新版本期间我错过了一些东西。
提前致谢。
我设法理解了这个问题。使用 PluginAlias 时会发生这种情况。[XSocketMetadata(PluginAlias = 当属性被删除并且客户端使用完整的控制器名称时,一切都按预期工作,并且 GetHashCode 返回相同的 id。
我将复制代码推送到 GitHub: https ://github.com/amichel/PlayWithXSockets/tree/ReproduceBugs
使用别名时有一个错误(如您所见)。解决方法是使用控制器的类名或仅在小写字母中使用别名。
在你的情况下使用
[XSocketMetadata(PluginAlias = "test")]
会工作。
问候乌夫