sách gpt4 ai đã đi

wcf - Tuần tự hóa các thông điệp WCF dưới dạng nhị phân thay vì dưới dạng thông điệp SOAP

In lại 作者:行者123 更新时间:2023-12-03 13:42:58 29 4
mua khóa gpt4 Nike

我有一个客户端-服务器应用程序,它使用 WCF 进行通信,并使用 NetDataContractSerializer 序列化对象图。

由于服务器和客户端之间传输了大量数据,因此我尝试通过微调数据成员的大小来减小其大小(例如将 int 更改为 short,long 更改为 int 等)。

调优后发现,传输的数据量并没有改变!问题是,NetDataContractSerializer 将对象图序列化为 XML,因此无论数据成员的大小是多少,唯一重要的是其值的大小。例如,Int16 数据成员的值 10023 将被序列化为字符串“10023”(0x3130303233),而不仅仅是 10023(0x2727)。

我记得在 Remoting 中我可以使用 BinaryFormatter,它根据数据成员的类型对值进行序列化,但我不知道是否可以将它与 WCF 一起使用。

有人有解决方案吗?

1 Câu trả lời

这是一个如何在此处进行自定义编码的示例 https://www.codeproject.com/Articles/434665/WCF-Serialization-A-Case-Study

值得注意的是,实际发送的内容与您有一个使用默认编码发送 byte[] 的服务方法相同。无论您如何配置序列化,通过网络传输的消息仍然使用 SOAP XML 信封。

它看起来像这样:

POST http://127.0.0.1:12345/forSwerGup182948/Client HTTP/1.1
Content-Type: text/xml; charset=utf-8
VswindowCausalityData: uIDPo+WkoDpet/JOtGlW+EHdpDQAAAAAvFs5XOJ0tEW0wTvNVRDUIiabR6u+p+JNnd5Z+SWl1NcACQAA
SOAPAction: "http://tempuri.org/ITransmissionService/SendData"
Host: 127.0.0.1:12345
Expect: 100-continue
Accept-Encoding: gzip, deflate
Content-Length: 2890

eyI8Q2FsbGJhY2tJZD5rX19CYWNraW5nRmllbGQiOiJlYTQ3ZWIzMS1iYjIzLTRkODItODljNS1hNTZmNjdiYmQ4MTQiLCI8RnJvbT5rX19CYWNraW5nRmllbGQiOnsiPENoYW5uZWxOYW1lPmtfX0JhY2tpbmdGaWVsZCI6Ikdyb3VwMSIsIjxOYW1lPmtfX0==

关于wcf - 以二进制方式序列化 WCF 消息,而不是作为 SOAP 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1282819/

29 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com