我在使用套接字库Fleck将我的C#应用程序传送到我的Web应用程序时遇到问题。
我试图发送一个数组但是套接字库只能发送/接收字符串作为消息。我知道我可以将数组作为字符串发送并在我的C#应用程序中进行字符串化,但我有一些特定的理由不这样做。
根据上图,您可以看到.cs文件已被锁定,我不允许进行任何更改。我相信开发人员有一些坚定的理由将消息变量设置为String ONLY 。
有什么想法吗?
答案 0 :(得分:2)
您可以序列化数组并使用Send(byte [])将对象作为字节用BinaryFormatter传输,或者您可以使用XmlSerializer并使用Send(string)
答案 1 :(得分:1)
该文件显示为"已锁定"因为它不是真实的文件 - 它是根据您引用的程序集的内容自动生成的,显示原始源可能的样子。如果您要进行任何实际更改,您需要获取原始来源(您在问题中链接到的),更改它(许可证允许)并重建它。
话虽如此,它似乎是Web套接字的包装器接口,但它们只支持二进制或字符串数据,所以在某种程度上,您必须将消息转换为其中一种类型。您可以在进入库之前在代码中执行该转换。
答案 2 :(得分:1)
它是一个库文件,这意味着您只能访问代码,不能编辑它。
可以做的是创建扩展属性或方法,这意味着您可以通过Send
方法传递覆盖方法并将其传递给数组。
您使用IWebSocketConnection
继承了:
的代码:
public interface IMyWebSocketExtended : IWebSocketConnection
然后创建覆盖所需类型的覆盖方法。
或者,您可以在将数据传递给IWebSocketConnection
之前从数组中提取数据并节省麻烦:)
答案 3 :(得分:0)
实现这一目标的方法之一是扩展方法。
public interface CustomWebSocket : IWebSocketConnection
例如,一旦扩展了方法,您就可以修改内容并使用它。
您可能需要先查看源代码并检查内容。