﻿<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE dotfuscatorreferencerules SYSTEM "http://www.preemptive.com/dotfuscator/dtd/dotfuscatorReferenceRule_v1.1.dtd">
<dotfuscatorreferencerules>
  <referencerule rulekey="{F4074361-D4CE-4e40-B907-BA9668A45996}"
                 ruleisdefault="false"
                 name="WCF Contract 对象">
    <comment>防止删除使用 OperationContract、ServiceContract、DataContract 或 DataMember 特性装饰的类型和成员。</comment>
    <triggerlist>
      <type name=".*"
            regex="true">
        <customattribute name="System\.ServiceModel\.ServiceContractAttribute"
                         regex="true"
                         allowinheritance="true" />
        <customattribute name="System\.Runtime\.Serialization\.DataContractAttribute"
                         regex="true" />
        <method name=".*"
                regex="true">
          <customattribute name="System\.ServiceModel\.OperationContractAttribute"
                           regex="true" />
        </method>
        <field name="Field"
               regex="true">
          <customattribute name="System\.Runtime\.Serialization\.DataMemberAttribute"
                           regex="true" />
        </field>
        <propertymember name=".*"
                        regex="true">
          <customattribute name="System\.Runtime\.Serialization\.DataMemberAttribute"
                           regex="true" />
        </propertymember>
      </type>
    </triggerlist>
  </referencerule>
  <referencerule rulekey="{6655B10A-FD58-462d-8D4F-5B1316DFF0FF}"
                 ruleisdefault="true"
                 name="自动生成的 ResourceManager">
    <comment>排除 Visual Studio 自动生成的资源类。它基于由字符串值指定的类名称使用反射来创建 ResourceManager 实例。</comment>
    <excludelist>
      <type name=".*[(Properties)(My)]\.Resources"
            regex="true" />
    </excludelist>
  </referencerule>
  <referencerule rulekey="{7D9C8B02-2383-420f-8740-A9760394C2C1}"
                 ruleisdefault="true"
                 name="标记为可序列化的类型和字段">
    <comment>排除所有可序列化的类型。它还排除所有可序列化的字段，不进行重命名。</comment>
    <excludelist>
      <type name=".*"
            regex="true"
            speclist="+serializable">
        <comment>排除所有可序列化的类型。它还排除所有可序列化的字段，不进行重命名。</comment>
        <field name=".*"
               speclist="-notserialized"
               regex="true" />
      </type>
    </excludelist>
  </referencerule>
  <referencerule rulekey="{229FD6F8-5BCC-427b-8F72-A7A413ECDF1A}"
                 ruleisdefault="true"
                 name="具有 System.Web.Services 特性的类型">
    <comment>排除使用 System.Web.Services 命名空间中的特性装饰的所有类型。</comment>
    <excludelist>
      <type name=".*"
            regex="true">
        <comment>排除使用 System.Web.Services 命名空间中的特性装饰的所有类型。</comment>
        <customattribute name="System.Web.Services.*"
                         regex="true" />
      </type>
    </excludelist>
  </referencerule>
  <referencerule rulekey="{2B7E7C8C-A39A-4db8-9DFC-6AFD38509061}"
                 ruleisdefault="true"
                 name="具有 System.Web.Services 特性的方法">
    <comment>排除使用 System.Web.Services 命名空间中的特性装饰的所有类型。</comment>
    <excludelist>
      <type name=".*"
            regex="true"
            excludetype="false">
        <comment>排除使用 System.Web.Services 命名空间中的特性装饰的所有类型。</comment>
        <method name=".*"
                regex="true">
          <customattribute name="System.Web.Services.*"
                           regex="true" />
        </method>
      </type>
    </excludelist>
  </referencerule>
  <referencerule rulekey="{D97286EB-CF80-4ae8-94D4-E90131E6D0D7}"
                 ruleisdefault="false"
                 name="具有 AccessedThroughPropertyAttribute 的字段">
    <comment>排除使用 System.Runtime.CompilerServices 命名空间中的 AccessedThroughPropertyAttribute 装饰的字段。在 Visual Basic 中，任何可访问的 WithEvents 属性都包含一个具有此特性的专用字段。此特性未在编译期间被去除以便其他程序集可通过反射对它进行检查，所以此规则只需要在处于库模式中时使用。</comment>
    <excludelist>
      <type name=".*"
            regex="true"
            excludetype="false">
        <comment>排除使用 System.Runtime.CompilerServices 命名空间中的 AccessedThroughPropertyAttribute 装饰的字段。在 Visual Basic 中，任何可访问的 WithEvents 属性都包含一个具有此特性的专用字段。此特性未在编译期间被去除以便其他程序集可通过反射对它进行检查，所以此规则只需要在处于库模式中时使用。</comment>
        <field name=".*"
               regex="true">
          <customattribute name="System\.Runtime\.CompilerServices\.AccessedThroughPropertyAttribute"
                           regex="true" />
        </field>
      </type>
    </excludelist>
  </referencerule>
  <referencerule rulekey="{494EA3BA-B947-44B5-BEE8-A11CC85AAF9B}"
                 ruleisdefault="true"
                 name="Silverlight 和 WPF UserControls 的字段">
    <comment>排除具有 System.Windows.Controls.UserControl 父类型的所有类型的字段。</comment>
    <excludelist>
      <type name=".*"
            regex="true"
            excludetype="false">
        <field name=".*"
               regex="true" />
        <supertype name="System.Windows.Controls.UserControl" />
      </type>
    </excludelist>
  </referencerule>
  <referencerule rulekey="{AB89403F-5E08-4adf-8386-6D34AF0ADBD3}"
                 ruleisdefault="false"
                 name="CrystalReport ReportClass 对象">
    <comment>排除具有 CrystalDecisions.CrystalReports.Engine.ReportClass 父类型的所有类型。</comment>
    <excludelist>
      <type name=".*"
            regex="true">
        <comment>排除具有 CrystalDecisions.CrystalReports.Engine.ReportClass 父类型的所有类型。</comment>
        <supertype name="CrystalDecisions\.CrystalReports\.Engine\.ReportClass"
                   regex="true" />
      </type>
    </excludelist>
  </referencerule>
  <referencerule rulekey="{89769974-93E9-4e71-8D92-BE70E855ACFC}"
                 ruleisdefault="true"
                 name="自动生成的应用程序设置">
    <comment>排除具有 System.Configuration.ApplicationSettingsBase 父类型的所有类型。</comment>
    <excludelist>
      <type name=".*"
            regex="true">
        <supertype name="System\.Configuration\.ApplicationSettingsBase"
                   regex="true" />
      </type>
    </excludelist>
  </referencerule>
  <referencerule rulekey="{6f022A59-3AD6-4C69-8D9B-6870B9B9E362}"
                 ruleisdefault="false"
                 name="Windows 工作流活动">
    <comment>排除具有 System.Workflow.ComponentModel.Activity 父类型的所有类型。</comment>
    <excludelist>
      <type name=".*"
            regex="true">
        <supertype name=".*Activity"
                   regex="true" />
      </type>
    </excludelist>
  </referencerule>
  <referencerule rulekey="{4D81E604-A545-4631-8B6D-C3735F793F80}"
                 ruleisdefault="true"
                 name="Windows Phone 计划任务代理">
    <comment>排除具有 Microsoft.Phone.Scheduler.ScheduledTaskAgent 父类型的所有类型。</comment>
    <excludelist>
      <type name=".*"
            regex="true">
        <supertype name="Microsoft.Phone.Scheduler.ScheduledTaskAgent" />
      </type>
    </excludelist>
  </referencerule>
</dotfuscatorreferencerules>