gpt4 book ai didi

c# - 计算通过 WCF 的包(数据契约(Contract))的大小?

转载 作者:行者123 更新时间:2023-11-30 12:33:19 26 4
gpt4 key购买 nike

是否可以计算我通过 WCF 发送的(复杂的)对象(使用 dataContract)的大小?我需要的是计算请求和响应对象的大小,我需要在 winform 应用程序中执行此操作。

我可以将对象序列化然后获取总大小吗?

最佳答案

您可以自己手动序列化/反序列化对象。下面是一个简单的序列化和获取长度的例子。

[DataContract(Name = "Person", Namespace = "http://www.woo.com")]
class Person
{
[DataMember()]
public string Name;
[DataMember()]
public int Age;
}

调用代码(在控制台应用程序中)

        Person p = new Person();
p.Name = "Sean Cocteau";
p.Age = 99;

DataContractSerializer ds = new DataContractSerializer(p.GetType());

using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
ds.WriteObject(ms, p);
// Spit out

Console.WriteLine("Output: " + System.Text.Encoding.UTF8.GetString(ms.ToArray()));
Console.WriteLine("Message length: " + ms.Length.ToString());
}

Console.ReadKey();

关于自动执行此操作,比如在每次 WCF 调用时可能需要您创建自己的 Custom Binding将其添加到消息中。

关于c# - 计算通过 WCF 的包(数据契约(Contract))的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9497958/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com