微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 计算通过WCF的包(datacontract)的大小?

是否可以计算我通过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,并将其添加到消息中.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐