<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Lifeng's Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/lifenglu/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/lifenglu/feed.xml</link>
    <description />
    <lastBuildDate>Tue, 16 Apr 2019 05:16:10 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Edit .svcmap file to access "hidden" functions of service references</title>
      <link>https://docs.microsoft.com/archive/blogs/lifenglu/edit-svcmap-file-to-access-hidden-functions-of-service-references</link>
      <pubDate>Fri, 01 Aug 2008 13:40:00 GMT</pubDate>
      <dc:creator><![CDATA[Lifeng Lu - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/lifenglu/2008/08/01/edit-svcmap-file-to-access-hidden-functions-of-service-references/</guid>
      <description><![CDATA[Not all&nbsp;code generation options of service references are exposed through its UI.&nbsp; To...]]></description>
      <content:encoded><![CDATA[<P>Not all&nbsp;code generation options of service references are exposed through its UI.&nbsp; To prevent users to be confused by some advanced options, the configuration dialog is designed to only expose options which are most likely to be used.&nbsp; We can only access other options by editing the .svcmap file.&nbsp; Unfortunately, the file is hidden by default, so people won't discover it easily, and most people will prevent to edit hidden files as well to prevent corrupting the project by accident.</P>
<P>Well, this .svcmap file is editable, and Xml Intellisense actually works here, so changing it is not that difficult.&nbsp; Certainly, we are not interested to change those options which can be changed easily through the configuration dialog.&nbsp; Here are something you can do with editing this file, but otherwise not doable:</P>
<P>1, You can enable sharing service contract types:</P>
<P>&nbsp;&nbsp; by adding ServiceContractMapping in the ServiceContractMappings section, you will force the code generator to use a shared service contract type defined in a referenced assembly (you cannot share a type defined in the current project.)&nbsp; The service reference will still generate configuration to the app.config file.</P>
<P>2, you can define complex collection mappings:</P>
<P>&nbsp; the configuration dialog only support some limited options.&nbsp;Adding CollectionMapping in the file, you get similar function you can get by using svcutil command line.</P>
<P>3, namespace mappings:</P>
<P>&nbsp; it works like /namespace option in the svcutil command line</P>
<P>4, you can add additional MatadataSources!</P>
<P>&nbsp; actually, you can reference two services in one service reference, and share the data types. Adding additional MetadataSource to the file by hand is the only way to do that today.&nbsp; Once you added, it will be maintained, and it will not be lost, when you update the service. (Actually, you don't need add MetadataFiles by hand.&nbsp; Just add a MetadataSource into the file, save it, and Update the reference, all metadata files will be downloaded automatically.</P>
<P>5, add additional Metadata files</P>
<P>&nbsp; It is possible to add additional metadata files to a service reference, just copy them to the folder, and add additional MetadataFile node in the .svcmap file to reference them.&nbsp; They will be used in the code generator.&nbsp; All MetadataFile without a SourceId will not be automatically updated, so they will stay even when you update the service reference.</P>
<P>6, add private configuration file</P>
<P>&nbsp;You can add a special extension file with name = "Reference.config" (very similar to configuration.svcinfo).&nbsp; With the configuration file, you can add additional extensions to the code generator. (Unlike adding them to the machine level configuration, things in the Reference.config only affect the code generator in one reference.&nbsp; Special security settings to enable downloading metadata files from a secured server is also possible through a such config file.</P>
<P>7, additional extension files</P>
<P>&nbsp; The additional code generator extensions can locate those extensions file registed in the Extension section. It is possible to set additional options through those files.</P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>old Schema designer and data grid editor</title>
      <link>https://docs.microsoft.com/archive/blogs/lifenglu/old-schema-designer-and-data-grid-editor</link>
      <pubDate>Fri, 24 Aug 2007 19:39:00 GMT</pubDate>
      <dc:creator><![CDATA[Lifeng Lu - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/lifenglu/2007/08/24/old-schema-designer-and-data-grid-editor/</guid>
      <description><![CDATA[Two old designers in VS 2005 have been removed from Orcas product.&nbsp; There are several reasons...]]></description>
      <content:encoded><![CDATA[<P>Two old designers in VS 2005 have been removed from Orcas product.&nbsp; There are several reasons why they are removed:</P>
<P>1, there will be a brand new schema designer built into VS.&nbsp; However, because of schedule issues, it is not in Orcas, but will be released off-cycle;</P>
<P>2, the two old designers depend on some old components of HTML designer.&nbsp; In Orcas, the HTML designer is replaced, and those components are gone/replaced.&nbsp; It becomes too costly to maintain them, especially when a new designer comes out soon.</P>
<P>3, the old schema designer also depend on a designer surface implemented in an old COM package, which is about to be removed.</P>
<P>Currently, there is no plan to build a new data grid editor, which view/edit an XML file in a data grid.&nbsp; The old designer only targets data set files, and it is very limited.&nbsp; It will be interesting to see whether people need it before&nbsp;spending time on it. </P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>Side by side comparsion between svcutil and the service reference in VS</title>
      <link>https://docs.microsoft.com/archive/blogs/lifenglu/side-by-side-comparsion-between-svcutil-and-the-service-reference-in-vs</link>
      <pubDate>Mon, 13 Aug 2007 19:47:00 GMT</pubDate>
      <dc:creator><![CDATA[Lifeng Lu - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/lifenglu/2007/08/13/side-by-side-comparsion-between-svcutil-and-the-service-reference-in-vs/</guid>
      <description><![CDATA[The Service Reference is new feature added into VS Orcas, so we don't have to use svcutil when using...]]></description>
      <content:encoded><![CDATA[<P>The Service Reference is new feature added into VS Orcas, so we don't have to use svcutil when using VS IDE.&nbsp; Here is the side by side comparsion table between svcutil and the service reference in Orcas:</P>
<P>
<TABLE class=LightShading-Accent1 style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-top-alt: solid #4F81BD 1.0pt; mso-border-top-themecolor: accent1; mso-border-bottom-alt: solid #4F81BD 1.0pt; mso-border-bottom-themecolor: accent1; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 5.4pt 0in 5.4pt" cellSpacing=0 cellPadding=0 border=1 class="LightShading-Accent1">
<TBODY>
<TR style="mso-yfti-irow: -1; mso-yfti-firstrow: yes">
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #4f81bd 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 120pt; PADDING-TOP: 0in; BORDER-BOTTOM: #4f81bd 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-themecolor: accent1; mso-border-bottom-themecolor: accent1" vAlign=top width=160>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 5"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">Svcutil command line<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #4f81bd 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 236.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #4f81bd 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-themecolor: accent1; mso-border-bottom-themecolor: accent1" vAlign=top width=315>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 1"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">VS service reference (.svcmap)<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #4f81bd 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 0.75in; PADDING-TOP: 0in; BORDER-BOTTOM: #4f81bd 1pt solid; BACKGROUND-COLOR: transparent; mso-border-top-themecolor: accent1; mso-border-bottom-themecolor: accent1" vAlign=top width=72>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 1"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">VS UI<o:p></o:p></FONT></FONT></SPAN></B></P></TD></TR>
<TR style="mso-yfti-irow: 0">
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 120pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=160>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 68"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">/out<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 236.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=315>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">(always delivery from the name of .svcmap)<o:p></o:p></FONT></FONT></SPAN></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 0.75in; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=72>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><o:p><FONT face="Times New Roman" size=3>&nbsp;</FONT></o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 1">
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 120pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=160>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 4"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">/config<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 236.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=315>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">(always the config file of the project)<o:p></o:p></FONT></FONT></SPAN></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 0.75in; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=72>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><o:p><FONT face="Times New Roman" size=3>&nbsp;</FONT></o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 2">
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 120pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=160>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 68"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">/mergeConfig<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 236.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=315>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">Always true<o:p></o:p></FONT></FONT></SPAN></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 0.75in; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=72>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><o:p><FONT face="Times New Roman" size=3>&nbsp;</FONT></o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 3">
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 120pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=160>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 4"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">/noConfig<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 236.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=315>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">Not supported<o:p></o:p></FONT></FONT></SPAN></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 0.75in; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=72>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><o:p><FONT face="Times New Roman" size=3>&nbsp;</FONT></o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 4">
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 120pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=160>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 68"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">/dataContractOnly<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 236.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=315>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">Not supported<o:p></o:p></FONT></FONT></SPAN></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 0.75in; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=72>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><o:p><FONT face="Times New Roman" size=3>&nbsp;</FONT></o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 5">
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 120pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=160>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 4"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">/language<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 236.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=315>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">Always based on the project<o:p></o:p></FONT></FONT></SPAN></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 0.75in; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=72>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><o:p><FONT face="Times New Roman" size=3>&nbsp;</FONT></o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 6">
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 120pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=160>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 68"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">/namespace<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 236.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=315>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&lt;</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">NamespaceMappings</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">But *-&gt; ReferenceName is always added<o:p></o:p></FONT></FONT></SPAN></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 0.75in; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=72>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 7">
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 120pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=160>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 4"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">/messageContract<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 236.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=315>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&lt;</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">GenerateMessageContracts</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 0.75in; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=72>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191">Yes</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p></o:p></SPAN></FONT></FONT></P></TD></TR>
<TR style="mso-yfti-irow: 8">
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 120pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=160>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 68"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">/enableDataBinding<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 236.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=315>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&lt;</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">EnableDataBinding</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 0.75in; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=72>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 9">
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 120pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=160>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 4"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">/serializable<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 236.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=315>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&lt;</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">GenerateSerializableTypes</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 0.75in; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=72>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 10">
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 120pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=160>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 68"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">/async<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 236.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=315>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&lt;</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">GenerateAsynchronousMethods</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 0.75in; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=72>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><FONT size=3><FONT face="Times New Roman"><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191">Yes</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p></o:p></SPAN></FONT></FONT></P></TD></TR>
<TR style="mso-yfti-irow: 11">
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 120pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=160>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 4"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">/internal<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 236.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=315>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&lt;</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">GenerateInternalTypes</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 0.75in; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=72>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191">Yes</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p></o:p></SPAN></FONT></FONT></P></TD></TR>
<TR style="mso-yfti-irow: 12">
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 120pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=160>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 68"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">/reference<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 236.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=315>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&lt;</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">ReferenceAllAssemblies</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&lt;</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">ReferencedAssemblies</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&lt;</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">ReferencedDataContractTypes</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&lt;</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">ServiceContractMappings</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><FONT size=3><FONT face="Times New Roman"><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191">Can pick up existing reference assemblies of the project automatically</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p></o:p></SPAN></FONT></FONT></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 0.75in; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=72>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><FONT size=3><FONT face="Times New Roman"><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191">Limited</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p></o:p></SPAN></FONT></FONT></P></TD></TR>
<TR style="mso-yfti-irow: 13">
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 120pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=160>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 4"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">/collectionType<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 236.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=315>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&lt;</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">CollectionMappings</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 0.75in; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=72>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191">Limited</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p></o:p></SPAN></FONT></FONT></P></TD></TR>
<TR style="mso-yfti-irow: 14">
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 120pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=160>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 68"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">/excludeType<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 236.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=315>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&lt;</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">ExcludedTypes</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 0.75in; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=72>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 15">
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 120pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=160>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 4"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">/noStdLib<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 236.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=315>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT face="Times New Roman" size=3>Through </FONT></SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&lt;</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">ReferencedAssemblies</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 0.75in; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=72>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191">Yes</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p></o:p></SPAN></FONT></FONT></P></TD></TR>
<TR style="mso-yfti-irow: 16">
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 120pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=160>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 68"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">/serializer<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 236.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=315>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&lt;</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">Serializer</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 0.75in; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=72>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 17">
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 120pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=160>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 4"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">/importXmlTypes<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 236.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=315>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&lt;</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">ImportXmlTypes</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&gt;<o:p></o:p></SPAN></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 0.75in; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=72>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 18">
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 120pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=160>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 68"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">/targetClientVersion<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 236.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=315>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><FONT size=3><FONT face="Times New Roman"><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191">Based on the project</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p></o:p></SPAN></FONT></FONT></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 0.75in; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=72>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 19">
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 120pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=160>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 4"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">/t:metadata<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 236.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=315>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191">Not supported</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p></o:p></SPAN></FONT></FONT></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 0.75in; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=72>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 20">
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 120pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=160>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 68"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">/validation<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 236.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=315>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><FONT size=3><FONT face="Times New Roman"><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191">Not supported</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p></o:p></SPAN></FONT></FONT></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 0.75in; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=72>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 21">
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 120pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=160>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 4"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">/t:xmlSerializer<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 236.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=315>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><FONT size=3><FONT face="Times New Roman"><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191">Not supported</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p></o:p></SPAN></FONT></FONT></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 0.75in; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; BACKGROUND-COLOR: transparent" vAlign=top width=72>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 22">
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 120pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=160>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 68"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">Multiple url/file<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 236.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=315>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&lt;</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">MetadataSources</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&gt;</SPAN><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><o:p></o:p></SPAN></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; BACKGROUND: #d3dfee; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 0.75in; PADDING-TOP: 0in; BORDER-BOTTOM: #ece9d8; mso-background-themecolor: accent1; mso-background-themetint: 63" vAlign=top width=72>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 64"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P></TD></TR>
<TR style="mso-yfti-irow: 23; mso-yfti-lastrow: yes">
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 120pt; PADDING-TOP: 0in; BORDER-BOTTOM: #4f81bd 1pt solid; BACKGROUND-COLOR: transparent; mso-border-bottom-themecolor: accent1" vAlign=top width=160>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-yfti-cnfc: 4"><B><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><FONT size=3><FONT face="Times New Roman">/svcutilConfig<o:p></o:p></FONT></FONT></SPAN></B></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 236.4pt; PADDING-TOP: 0in; BORDER-BOTTOM: #4f81bd 1pt solid; BACKGROUND-COLOR: transparent; mso-border-bottom-themecolor: accent1" vAlign=top width=315>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">&lt;</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: #a31515; FONT-FAMILY: 'Courier New'; mso-no-proof: yes">ExtensionFile Name=”Reference.config”</SPAN><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"> /&gt;</SPAN><SPAN style="COLOR: #365f91; mso-themecolor: accent1; mso-themeshade: 191"><o:p></o:p></SPAN></P></TD>
<TD class="" style="BORDER-RIGHT: #ece9d8; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0in; BORDER-LEFT: #ece9d8; WIDTH: 0.75in; PADDING-TOP: 0in; BORDER-BOTTOM: #4f81bd 1pt solid; BACKGROUND-COLOR: transparent; mso-border-bottom-themecolor: accent1" vAlign=top width=72>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"><o:p>&nbsp;</o:p></SPAN></P></TD></TR></TBODY></TABLE></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><o:p><FONT face="Times New Roman" size=3>&nbsp;Essentially, the svcutil is built for several tasks like exporting metadata, validating the service.&nbsp; But the service reference is built for generating proxy/configuration only.&nbsp; However,&nbsp;in&nbsp;the proxy/configuration generating scenario,&nbsp;the function of the service reference and svcutil are overlapped.&nbsp; The service reference supports most options svcutil supports in its command line.&nbsp; However, to access those options, editing the .svcmap file is necessary&nbsp; (only limited options are exposed through UI.)&nbsp; By saving the options in a file, however, it is easier to repeat the process, when the service is updated.</FONT></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><o:p><FONT face="Times New Roman" size=3></FONT></o:p>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><o:p><FONT face="Times New Roman" size=3>&nbsp;The advantage to use the service reference is clear when using the IDE.&nbsp; We don't lose most ablility of the svcutil tool, but gain some convenience: options like the language/targetPlatform don't have to be chose again, but will be picked up from the project system automatically.&nbsp; The result config is also automatically merged, and previous injected configuration will be tracked, and removed when the reference is removed or updated, so it won't inject lots of duplicated items. (That function is limited in this version if binding in the configuration is editted.)&nbsp; The IDE also supports better experience when the service is secured. </FONT></o:p></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><o:p><FONT face="Times New Roman" size=3></FONT></o:p>&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><o:p><FONT face="Times New Roman" size=3></FONT></o:p>&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>How to generate Begin/End invocation pattern methods in web service proxies in VS 8+</title>
      <link>https://docs.microsoft.com/archive/blogs/lifenglu/how-to-generate-beginend-invocation-pattern-methods-in-web-service-proxies-in-vs-8</link>
      <pubDate>Wed, 08 Aug 2007 19:47:00 GMT</pubDate>
      <dc:creator><![CDATA[Lifeng Lu - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/lifenglu/2007/08/08/how-to-generate-beginend-invocation-pattern-methods-in-web-service-proxies-in-vs-8/</guid>
      <description><![CDATA[It is a problem asked by some customers.&nbsp; They were using Begin/End invocation pattern to call...]]></description>
      <content:encoded><![CDATA[<P>It is a problem asked by some customers.&nbsp; They were using Begin/End invocation pattern to call web service asynchronously.&nbsp; Those async methods were generated in web proxies in Visual Studio 7.x, and when they are using wsdl.exe tool, but were gone when they use the Visual Studio 2005 or Orcas Beta 2.&nbsp; In both VS 2005 and Orcas, the generated proxy only contains event-driven programming pattern methods.</P>
<P>First, for who is using the event-driven model, there is no reason to turn on the Begin/End pattern methods, because only one of them should be used.&nbsp; For many users, the event-driven model is also easier to use.</P>
<P>For those who still need use the Begin/End pattern methods, it is still possible to turn on a project level option to get them back:</P>
<P mce_keep="true">To do that, we need unload the project from VS, and edit the project file directly in an editor. (Please backup one in case we do something wrong.)</P>
<P mce_keep="true">In the first section of PropertyGroup, you will see many properties like:<BR>&lt;ProjectGuid&gt;{F4DC6946-F07E-4812-818A-xxxxxxxx}&lt;/ProjectGuid&gt;<BR>&lt;OutputType&gt;Exe&lt;/OutputType&gt;<BR>...<BR>Don't change any of those, but do add an extra property just like the OutputType into that section like:<BR>&lt;WebReference_EnableLegacyEventingModel&gt;true&lt;/WebReference_EnableLegacyEventingModel&gt;<BR>Ignore the warning from the xml editor, save the file, and reload the project into VS.</P>
<P mce_keep="true">After that, you have to regenate all proxy code (by updating the reference, or running the custom tool on the .map file)</P>
<P mce_keep="true">Note: it is only for old web reference proxies.&nbsp; For old service references (WCF proxies), the Begin/End pattern async methods will be generated when "Generate async method" is turned on for that reference. (That is beta 2 feature.)&nbsp; The methods for another pattern (event model) will not be generated in beta 2, but will be added in RTM when the project is targetting the new 3.5 framework.</P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>WCF tool extensiblity samples have shipped</title>
      <link>https://docs.microsoft.com/archive/blogs/lifenglu/wcf-tool-extensiblity-samples-have-shipped</link>
      <pubDate>Thu, 02 Aug 2007 14:35:00 GMT</pubDate>
      <dc:creator><![CDATA[Lifeng Lu - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/lifenglu/2007/08/02/wcf-tool-extensiblity-samples-have-shipped/</guid>
      <description><![CDATA[The WCF tool in the Visual Studio exposes several layers of extensibility APIs.&nbsp; Those were...]]></description>
      <content:encoded><![CDATA[<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">The WCF tool in the Visual Studio exposes several layers of extensibility APIs.&nbsp; Those were built into the product to make a third party could extend the feature to make it easy to use in their special environment, or make the feature work in a third party environment.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">Those extensibility points include:<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">1, a set of VSIP APIs to allow third party feature to list and manipulate&nbsp;WCF references inside a project;<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">2, allow a third party project system to enable/disable the feature, and how to store the information in the project system;<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">3, a way to extend the current “add service reference” dialog to help finding services;<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">4, support and extend standard WCF extensibility model, including support WSDL/Policy importer extensions, and allow extra settings of the extensions to be persisted in the reference.<o:p></o:p></SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">Those new samples could be found at <A href="https://www.microsoft.com/downloads/details.aspx?FamilyID=d9000e2c-bd3f-4717-a181-723960814e16&amp;displaylang=en"><FONT color=#800080>https://www.microsoft.com/downloads/details.aspx?FamilyID=d9000e2c-bd3f-4717-a181-723960814e16&amp;displaylang=en</FONT></A><o:p></o:p></SPAN></P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>Passing DataTable across web/wcf services</title>
      <link>https://docs.microsoft.com/archive/blogs/lifenglu/passing-datatable-across-webwcf-services</link>
      <pubDate>Wed, 01 Aug 2007 16:46:00 GMT</pubDate>
      <dc:creator><![CDATA[Lifeng Lu - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/lifenglu/2007/08/01/passing-datatable-across-webwcf-services/</guid>
      <description><![CDATA[Passing DataTable (without embeded into a dataset) across web services is supported in .Net 2.0...]]></description>
      <content:encoded><![CDATA[<P>Passing DataTable (without embeded into a dataset) across web services is supported in .Net 2.0 framework.&nbsp; However we found a bug in this area, which might affect using this feature with strong typed dataTable.&nbsp; For example, when a web service function wants to return a DataTable to the client, an independent dataTable (a dataTable which is not a part of a dataset) will work, but a dataTable inside a dataSet won't work.&nbsp; What happens is that the client side couldn't deserialize the dataTable from wire.&nbsp; The root reason is the DataTable inside&nbsp;a dataset inherits a schema namespace from the dataSet, but an independent datatable has an empty namespace (unless we change it).&nbsp; Data cannot be changed between two dataTables with different namespace.</P>
<P>The problem is that the instance of the dataTable on the client side is created by framework directly. It is impossible to change the namespace without changing generated strong type dataset code.&nbsp; To work around this issue, the server side need copy data to an independent dataTable before passing it to the client.</P>
<P>That affects both .Net 2.0 web services and 3.0 Windows communication fundation services.</P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>Add an old (8.0) style web reference into an Orcas (VS 9) project</title>
      <link>https://docs.microsoft.com/archive/blogs/lifenglu/add-an-old-8-0-style-web-reference-into-an-orcas-vs-9-project</link>
      <pubDate>Wed, 20 Jun 2007 21:17:00 GMT</pubDate>
      <dc:creator><![CDATA[Lifeng Lu - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/lifenglu/2007/06/20/add-an-old-8-0-style-web-reference-into-an-orcas-vs-9-project/</guid>
      <description><![CDATA[In VS 9, the "Add Web Reference" menu command was "replaced" by "Add Service Reference" command in...]]></description>
      <content:encoded><![CDATA[<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">In VS 9, the "Add Web Reference" menu command was "replaced" by "Add Service Reference" command in all client projects (VB/C#) targeting 3.x platform.&nbsp; Although "service reference" works for most existing web servers, the proxy generated from "Service Reference" and the old "Web Reference" is very different.&nbsp; The service reference is actually a new WCF client, which gives us a lots of flexibility through its configuration system.&nbsp; However, it is fairly different from the old Web Reference API, and the old code consuming old reference certainly will not work without extra work.&nbsp;&nbsp;And there is a tricky part when we use a WCF client to consume an old web reference:&nbsp; the WCF expects you to define types with new DataContract format, and most type defined in web reference is XmlSerialiable types.&nbsp; The proxy generator might not work well with the default options, and sometime, we have to adjust some options to make it to work. (Often the "Auto" serializer doesn't work, and we might have to use "XmlSerializer".&nbsp; <SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'; mso-fareast-font-family: SimSun; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">Unfortunately</SPAN>, that option is not exposed through an UI dialog, so we have to edit the .svcmap file directly)</SPAN></P>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'">We might want to continue using old style web reference for those web services.&nbsp; Unfortunately, "Add Web Reference" menu is disabled by default in the projects, unless you already had such reference in the project.&nbsp; In beta 1, there is no way to find this command.&nbsp; We have to downgrade the project to target 2.0 platform to add one web reference and upgrade the project again to add the first web reference.&nbsp; It is very ugly workaround.&nbsp; In CTPs after beta 1, the command can be accessed through the dialog popping up when we click the "advance" button on the "Add Service Reference" dialog.&nbsp; It is not an obvious place to find it, but the menu should be enabled after that, so it only need be done once.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>.svcmap file</title>
      <link>https://docs.microsoft.com/archive/blogs/lifenglu/svcmap-file</link>
      <pubDate>Fri, 15 Jun 2007 19:08:00 GMT</pubDate>
      <dc:creator><![CDATA[Lifeng Lu - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/lifenglu/2007/06/15/svcmap-file/</guid>
      <description><![CDATA[After&nbsp;we add a WCF service reference into a Visual Studio project, a .svcmap file will be added...]]></description>
      <content:encoded><![CDATA[<P>After&nbsp;we add a WCF service reference into a Visual Studio project, a .svcmap file will be added to the project, and it contains most information of the service reference. Actually, it is the only essential file of the reference. In most case, we can remove all other files in the service reference, and still can pull down all the files from services by updating the service reference.&nbsp; By default the .svcmap file is hidden in the solution explorer unless we turn on "show all files..." option.</P>
<P>Do I need understand the .svcmap file?&nbsp; No, you don't have to, if you just want to play with the new WCF feature, just like you don't have to know much about command line options of the svcutil tool before you start to use that.&nbsp; Actually,&nbsp;the file contains options for the proxy code generator, makes it equlivent to those command line options in many cases.&nbsp; However, when we need deal with some slightly complex scenarios, like consuming an old web services, sometimes without turning those options, we don't get useful proxy code.&nbsp; That is when we need look into this file.</P>
<P>Some common code generator options are exposed through a "service reference settings" dialog (not in beta1).&nbsp; But many of them are not exposed through any UI.&nbsp; To change those options, we will have to open and edit the .svcmap file inside a service. Fortunatly, the format of the file is fairly simple, and the schema of that file is shipped with the Visual Studio, so the Xml Editor will provide intellisense when we edit the file.</P>
<P>Although the most options in the .svcmap file works exactly the same way as command line options of svcutil tool, there&nbsp;is some difference between them.&nbsp; For example, when you turn on type sharing in existing assemblies, the svcutil will share service contract types as well as data contract types.&nbsp; But the code generator in VS will only share data contract types.&nbsp; Service contract types will not be shared automatically.&nbsp; A white list must be added in the .svcmap file to make service contract type sharing to work.</P>
<P>Other than the code generator options, there are some interesting things we can do when we edit the file directly.&nbsp; One sample is that there is a MetadataSource section in the file, which contains where to download metadata file. By default, there is always one MetadataSource when the service reference is created through UI. It doesn't have to be this way.&nbsp; For example, if the metadata is not exposed by the service, but you get them through other way of communication, like through an email.&nbsp;&nbsp;We can copy all metadata files into the service reference folder, and reference them directly in the .svcmap file, and delete all MetadataSources.&nbsp; The result will be a service reference, which generates valid code, but will not try to download files from a server.&nbsp; Another possible is to add two sources, so the metadata will be pulled into one reference, and code will be generated together.&nbsp; It is similar like providing two URLs in the svcutil tool.</P>
<P>We can also apply things similar to '/toolconfig' in the svcutil command line. That will allow us to add/remove WSDL/Policy importer extensions.&nbsp; The easiest way is to add those tool configuration in the web.config/app.config of the project.&nbsp; However, that solution has two problems.&nbsp; First, we usually don't want to ship those design time options in the product.&nbsp; The web.config/app.config is a part of the product, so we do mix the design thing and runtime thing in the same place.&nbsp; Second, if&nbsp;we have two service references, and we want different importer extensions for them, there is no way to do so.&nbsp; Fortunately, it is possible to give every service reference a seperated tool config file.&nbsp; The way to do this is to add a Reference.config file in the service reference folder, and reference that file as an extension file in the .svcmap file, just like how .svcinfo file is referenced.</P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>Type sharing in WCF service reference</title>
      <link>https://docs.microsoft.com/archive/blogs/lifenglu/type-sharing-in-wcf-service-reference</link>
      <pubDate>Wed, 09 May 2007 15:02:00 GMT</pubDate>
      <dc:creator><![CDATA[Lifeng Lu - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/lifenglu/2007/05/09/type-sharing-in-wcf-service-reference/</guid>
      <description><![CDATA[Type sharing is very useful when we want to pass same data between two services.&nbsp; Without type...]]></description>
      <content:encoded><![CDATA[<P>Type sharing is very useful when we want to pass same data between two services.&nbsp; Without type sharing, we will get seperated types in the proxy for every service we consume.&nbsp; That means a lot of code to convert data in one type to another before and after calling a service, which could be painful, and unnecessary coupling in code.</P>
<P>For service reference, there are two kind of type sharing:</P>
<P>1, reuse type pre-defined in a class library in proxy code&nbsp; (do not generate new type in proxy)</P>
<P>2, share type between services (generate new type only once for different services)</P>
<P>The SDK tool svcutil supports the first kind of type sharing.&nbsp; The WCF feature in the Visual Studio provides same level support for this kind of type sharing.&nbsp; However, it becomes easier to use, because the generator in VS could automatically extra types in depedent assemblies of the project.&nbsp; We do need remember to add reference to the assembly containing pre-defined types, but don't have to pass it as a parameter as we use svcutil.&nbsp; The feature in VS also provides more refined control to the user, so it is possible to share types in a small set of assemblies or disable it.</P>
<P>The type sharing is actually done by the DataContract importer extension, so the type sharing in VS inherits the same limitation of the feature in svcutil.exe.&nbsp; Basically, if you are only using new DataContract in service contracts, it works well.&nbsp; But it doesn't support sharing some xml serializable types.&nbsp; Sharing dataSet is supported, but somewhat limited.&nbsp; The problem is that the data set type must be defined in exactly same CLR namespace in both server and client before the type sharing can work.&nbsp; It should not be a problem if we want to share a same data set between client and server, but could be a problem if we only want to share the type between clients.&nbsp; Of course, since data contract types are generated by extensions, it is possible to improve that by adding new or customized extensions.</P>
<P>One limitation which could not be resolved by adding extension is that the shared type must be defined in a library, but can not be defined in the same project consuming the service.&nbsp; Considering that the type must be used by the proxy generator, and the proxy is a part of the project.&nbsp; Reusing type in the same project could somehow cause a recursive logic in the current way&nbsp;how the generator works today. We may have to live with that limitation.</P>
<P>The second style of type sharing is supported by wsdl.exe.&nbsp; svcutil.exe also allows to have two metadata source URL in its command line, although it works only if there is no conflict in metadata from the two sources.&nbsp; That works if the wsdl files are hand crafted, but doesn't work well when the metadata is generated automatically, because we often get duplicated schema files from difference sources.&nbsp; The WCF consumption feature in VS works in a very similar way as svcutil, although it would try to remove duplicated schemas.</P>
<P>(BTW, the type sharing is not supported in beta 1, but CTPs after that)</P>
<P mce_keep="true">&nbsp;</P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>ContextSwitchDeadlock MDA and COM</title>
      <link>https://docs.microsoft.com/archive/blogs/lifenglu/contextswitchdeadlock-mda-and-com</link>
      <pubDate>Wed, 09 May 2007 13:27:00 GMT</pubDate>
      <dc:creator><![CDATA[Lifeng Lu - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/lifenglu/2007/05/09/contextswitchdeadlock-mda-and-com/</guid>
      <description><![CDATA[The ContextSwitchDeadlock MDA is a very annoying debugger message.&nbsp; The message is reported by...]]></description>
      <content:encoded><![CDATA[<P>The ContextSwitchDeadlock MDA is a very annoying debugger message.&nbsp; The message is reported by a background thread, which wakes up once a while and if it finds a remote call doesn't pass in 60 seconds, it raises the error.&nbsp; But the problem is that the error message contains a few context code, but doesn't tell you the exactly location it happens, or tell you which thread makes the call.</P>
<P>Based on the document, the problem happens, when a thread (so often the main UI thread) is working on something and doesn't pump message for 60 seconds.&nbsp; In that period, if a background thread tries to make a remote call to the thread, it could be blocked for more than 60 seconds, and the problem will be raised.&nbsp; If the application uses COM,&nbsp;(maybe directly or indirectly -- for example one control is built this way), it could be a problem.&nbsp; Even the application doesn't use multi thread directly, and we don't feel that we make any remote call.&nbsp;&nbsp; The problem is that most managed application depends on the GC to release COM marshalling object,&nbsp; and the GC is running in a background thread and it could run at any time.&nbsp; So, when the GC tries to release a COM object when it finds no one is using that, it will make a call to the STA thread.&nbsp; If the STA thread ever does something longer than 60 seconds, it becomes a problem.</P>
<P>It could be worse, if we create a background STA thread.&nbsp; It is almost impossible to stop that thread, because if GC hasn't cleaned up all COM objects created in that STA thread at that point.&nbsp; It would end up in the ContextSwitchDeadlock, because no way to call into a dead thread.&nbsp; Of course, we couldn't control GC to clean up those objects before we stop the thread.&nbsp;Unless you can control the life of those ReleaseComObject, it is better to create MTA background thread instead. </P>
<P>ReleaseComObject itself could be a nightmare.&nbsp; Unless you own the both side, the code could be broken easily if the COM object written in native code is updated to managed later.&nbsp; The internal count is increased in any native-managed boundary, so we need know the exactly boundary, which is not really detectable in code.&nbsp; 'IsComObject' does not provide much value, because an object could be implemented in half managed and half native code.&nbsp; For those objects, IsComObject will return true, although the call doesn't go through native/managed boundary.&nbsp; Or even the half managed half native object is passed through a such boundary, its internal count never increases.&nbsp;The first time when&nbsp;you call ReleaseComObject, the native half of the object will be released, and the whole thing is now broken.</P>
<P mce_keep="true">&nbsp;</P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
  </channel>
</rss>