注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天涯倦客的博客

祝福你朋友永远快乐!

 
 
 

日志

 
 

如何:使用 XmlSerializer 改善 WCF 客户端应用程序的启动时间  

2013-08-02 15:13:32|  分类: asp.net |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
如何:使用 XmlSerializer 改善 WCF 客户端应用程序的启动时间

如果服务和客户端应用程序使用可用 XmlSerializer 进行序列化的数据类型,则会在运行时生成并编译这些数据类型的序列化代码,从而导致启动性能降低。

如何:使用 XmlSerializer 改善 WCF 客户端应用程序的启动时间 - 海里的贝壳 - apple的博客注意:
预生成的序列化代码只能在客户端应用程序中使用,不能在服务中使用。

通过从为应用程序编译的程序集生成必要的序列化代码,ServiceModel Metadata Utility Tool (Svcutil.exe) 可提高这些应用程序的启动性能。Svcutil.exe 会为已编译的应用程序集的服务协定中使用的所有数据生成序列化代码,该代码可使用 XmlSerializer 进行序列化。使用 XmlSerializer 的服务和操作协定用XmlSerializerFormatAttribute 进行标记。

生成 XmlSerializer 序列化代码

  1. 将服务或客户端代码编译为一个或多个程序集。

  2. 打开一个 SDK 命令提示符窗口。

  3. 在命令提示符处,使用下面的格式启动 Svcutil.exe 工具。

    svcutil.exe /t:xmlSerializer  <assemblyPath>*

    assemblyPath 参数指定包含服务协定类型的程序集的路径。Svcutil.exe 会为已编译的应用程序集的服务协定中使用的所有数据生成序列化代码,该代码可使用 XmlSerializer 进行序列化。

    Svcutil.exe 只能生成 C# 序列化代码。为每个输入程序集生成一个源代码文件。不能使用 /language开关更改所生成代码的语言。

    若要指定从属程序集的路径,请使用 /reference 选项。

  4. 通过使用下列选项之一使生成的序列化代码可供您的应用程序使用:

    1. 将生成的序列化代码编译成名为 [原始程序集].XmlSerializers.dll 的独立程序集(例如 MyApp.XmlSerializers.dll)。您的应用程序必须能够加载该程序集,而该程序集必须使用与原始程序集相同的密钥进行签名。如果您要重新编译原始程序集,则必须重新生成序列化程序集。
    2. 将生成的序列化代码编译成单独的程序集,并在使用 XmlSerializerFormatAttribute 的服务协定上使用 XmlSerializerAssemblyAttribute。将 AssemblyName 或 CodeBase 属性设置为指向已编译的序列化程序集。
    3. 将生成的序列化代码编译到您的应用程序集内并将 XmlSerializerAssemblyAttribute 添加到使用 XmlSerializerFormatAttribute 的服务协定中。不要设置 AssemblyName 或 CodeBase 属性。默认序列化程序集假定为当前程序集。

示例

下面的命令为 XmlSerializer 类型生成程序集中所有服务协定使用的序列化类型。

svcutil /t:xmlserializer myContractLibrary.exe

另请参见

转自:http://technet.microsoft.com/zh-cn/magazine/aa751883(VS.90).aspx
  评论这张
 
阅读(394)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017