如何编辑C#库文件

时间:2016-08-11 09:53:19

标签: c# .net sockets websocket

我在使用套接字库Fleck将我的C#应用​​程序传送到我的Web应用程序时遇到问题。

我试图发送一个数组但是套接字库只能发送/接收字符串作为消息。我知道我可以将数组作为字符串发送并在我的C#应用​​程序中进行字符串化,但我有一些特定的理由不这样做。

Image

根据上图,您可以看到.cs文件已被锁定,我不允许进行任何更改。我相信开发人员有一些坚定的理由将消息变量设置为String ONLY

有什么想法吗?

4 个答案:

答案 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

例如,一旦扩展了方法,您就可以修改内容并使用它。

您可能需要先查看源代码并检查内容。