C# CA2000-“校外初级程序员”-错误还是误报?

C# CA2000-“校外初级程序员”-错误还是误报?,c#,websocket,dispose,false-positive,ca2000,C#,Websocket,Dispose,False Positive,Ca2000,更准确地说,我目前正在使用WebSocket开发一些桌面应用程序:我正在使用Alchemy WebSocket。到目前为止,我的代码运行良好,但VisualStudio2010告诉我要这样做 Warning 2 CA2000 : Microsoft.Reliability : In method 'ServerController.SetupServer(int)', call System.IDisposable.Dispose on object '<>g__initLoca

更准确地说,我目前正在使用WebSocket开发一些桌面应用程序:我正在使用Alchemy WebSocket。到目前为止,我的代码运行良好,但VisualStudio2010告诉我要这样做

Warning 2   CA2000 : Microsoft.Reliability : In method 'ServerController.SetupServer(int)', call System.IDisposable.Dispose on object '<>g__initLocal0' before all references to it are out of scope.   C:\Users\MaRiedl\documents\visual studio 2010\Projects\Alchemy-WebSockets\AWS-Server\ServerController.cs    38  AWS-Server

代码分析警告是因为您正在一次性对象上使用对象初始值设定项

无论何时使用对象初始值设定项,都会创建一个临时的、不可见的局部对象。有关详细信息,请参见。消息引用的是这个对象g__initLocal0,因为如果在创建异常时抛出异常,您将无法处理它

如果单独设置属性

_webSocketServer = new WebSocketServer(port, IPAddress.Any);
_webSocketServer.OnReceive = OnReceive;

然后消息将消失,因为没有创建临时对象。

代码分析警告是因为您在一次性对象上使用对象初始值设定项

无论何时使用对象初始值设定项,都会创建一个临时的、不可见的局部对象。有关详细信息,请参见。消息引用的是这个对象g__initLocal0,因为如果在创建异常时抛出异常,您将无法处理它

如果单独设置属性

_webSocketServer = new WebSocketServer(port, IPAddress.Any);
_webSocketServer.OnReceive = OnReceive;

然后消息将消失,因为没有创建临时对象。

谢谢,这很有帮助-不知道这些花式花括号会导致临时对象谢谢,这很有帮助-不知道这些花式花括号会导致临时对象