几天来,我一直在为我们的 WPF 应用程序问题而苦苦挣扎,我想知道是否有人以前遇到过这个问题并且可以提供帮助?问题似乎归结为客户端生成“即时”序列化程序来处理该 Web 方法调用中的类型。当第一次调用该方法时(Web 服务本身已经在运行),它可能需要例如 8 秒,后续调用可能需要例如 20 毫秒。在此延迟期间,客户端 WPF 进程上的 CPU 非常高。
使用 XmlSerializer 时,有一种方法可以使用 svcutil 预先生成这些序列化程序程序集。当(就像我们一样)使用普通的 WCF DataContractSerializer 时,这个选项似乎不存在。
我想要的是能够为我的所有数据合约(很多)中的所有类型预先生成这个程序集,或者,用我可以编码并以二进制形式传递数据的自定义程序替换这个过程(我们拥有此 Web 服务/客户端的两端,它们都是 .NET 4)。我已经使用了 BinaryForamtter 和 GZip 压缩,虽然这加快了数据的传输,但它总是被恢复为 XML 以由框架反序列化,因此这个问题仍然存在。
有任何想法吗?