如何编辑C#库文件
我在使用socket库将C#应用程序与web应用程序通信时遇到问题 我正在尝试发送数组,但套接字库只能发送/接收字符串作为消息。我知道我可以将数组作为字符串发送,并在我的C#app上将其字符串化,但我有一些特定的理由不这样做 如上图所示,您可以看到.cs文件已锁定,不允许我进行任何更改。我相信开发人员有一些坚定的理由将message变量设置为StringONLY如何编辑C#库文件,c#,.net,sockets,websocket,C#,.net,Sockets,Websocket,我在使用socket库将C#应用程序与web应用程序通信时遇到问题 我正在尝试发送数组,但套接字库只能发送/接收字符串作为消息。我知道我可以将数组作为字符串发送,并在我的C#app上将其字符串化,但我有一些特定的理由不这样做 如上图所示,您可以看到.cs文件已锁定,不允许我进行任何更改。我相信开发人员有一些坚定的理由将message变量设置为StringONLY 有什么想法吗?您可以序列化数组并使用Send(字节[])使用BinaryFormatter将对象作为字节传输,或者您可以使用XmlS
有什么想法吗?您可以序列化数组并使用Send(字节[])使用BinaryFormatter将对象作为字节传输,或者您可以使用XmlSerializer并使用Send(字符串)您可以序列化数组并使用Send(字节[])使用BinaryFormatter将对象作为字节传输,或者您可以使用XmlSerializer并使用Send(字符串)文件显示为“锁定”,因为它不是真实的文件-它是根据您引用的程序集内容自动生成的,显示原始源的外观。如果您想要进行任何实际更改,您需要获取原始源(您在问题中链接到的源),更改它(许可证允许)并重新生成它 话虽如此,它似乎是web套接字的包装器接口,它们只支持二进制或字符串数据,因此在某种程度上,您必须将消息转换为这些类型之一。您也可以在代码进入库之前在代码中执行该转换 文件显示为“锁定”,因为它不是真实的文件-它是根据您引用的程序集内容自动生成的,向您显示原始源的外观。如果您想要进行任何实际更改,您需要获取原始源(您在问题中链接到的源),更改它(许可证允许)并重新生成它
话虽如此,它似乎是web套接字的包装器接口,它们只支持二进制或字符串数据,因此在某种程度上,您必须将消息转换为这些类型之一。您也可以在代码进入库之前在代码中执行该转换 它是一个库文件,这意味着您只能访问代码,不能编辑代码 可以创建扩展属性或方法,这意味着您可以将覆盖方法传递给
Send
方法并向其传递一个数组
您可以使用:
从IWebSocketConnection
继承代码,如下所示:
公共接口IMyWebSocketExtended:IWebSocketConnection
然后创建接受所需类型的重写方法
或者,您可以在将数据传递到
IWebSocketConnection
之前从数组中提取数据,省去麻烦:)这是一个库文件,这意味着您只能访问代码,不能编辑代码
可以创建扩展属性或方法,这意味着您可以将覆盖方法传递给Send
方法并向其传递一个数组
您可以使用:
从IWebSocketConnection
继承代码,如下所示:
公共接口IMyWebSocketExtended:IWebSocketConnection
然后创建接受所需类型的重写方法
或者,您可以在将数据传递到
IWebSocketConnection
之前从数组中提取数据,省去麻烦:)实现这一点的方法之一是扩展这些方法
public interface CustomWebSocket : IWebSocketConnection
例如,一旦扩展了方法,就可以修改内容并使用它
您可能希望查看源代码并首先签出内容。实现这一点的方法之一是扩展方法
public interface CustomWebSocket : IWebSocketConnection
例如,一旦扩展了方法,就可以修改内容并使用它
您可能希望查看源代码并首先签出内容。您已经链接到了Fleck的源代码-难道您不能简单地更改代码以满足您的需要,而不担心库被锁定吗?出于为什么只使用字符串的原因,它看起来像是基于在支持二进制数据之前创建的Nugget。看这里:@JamesThorpe很高兴知道这一点。是否可以更改程序集文件?我不知道如何获取原始源代码…您已经链接到了Fleck的源代码-难道您不能简单地更改代码以满足您的需要,而不担心库被锁定吗?出于为什么只使用字符串的原因,它看起来像是基于在支持二进制数据之前创建的Nugget。看这里:@JamesThorpe很高兴知道这一点。是否可以更改程序集文件?我不知道如何获得原始来源。。。