Using the GUI
The Analytics screen is used to configure Dotfuscator's code injection - namely, its Checks feature and its Analytics feature. You can access this screen in Dotfuscator Community Edition's navigation tree by selecting (Project Name) > Configuration Options > Analytics. This screen contains three tabs: an informational "Getting Started" tab and two tabs for configuring Checks and Analytics.
This tab allows you to view and configure attributes used for code injection.
The tab is divided into two sections. The left side presents the structure of your input assemblies in a code tree, including any code injection attributes. Selecting such an attribute will display the attribute's properties in the right side of the tab, allowing for configuration of the selected attribute.
In addition to specifying attributes in your source code, you may also add attributes to your project from the Dotfuscator Community Edition (Dotfuscator CE) GUI. These attributes will be saved in the Dotfuscator project file, not your source code. These attributes are known as extended attributes.
To add an extended attribute to a Dotfuscator project:
In the code tree, select the assembly or method that you wish to annotate.
Right-click the selected item and choose Add Attribute.
Select the appropriate attribute from the list of available attributes and click OK.
The extended attribute is added as a child of the item, listed in blue text. Expand the item's subtree and select the newly-added attribute.
The right side of the tab now displays the properties of the attribute. You may edit properties that are recognized by Dotfuscator Community Edition; properties exclusive to Dotfuscator Professional Edition are grayed out.
For instance, a
BusinessAttribute can be added to an assembly by right-clicking the assembly in the left-hand side tree view, selecting Add Attribute, and choosing
The attribute's CompanyName property can be configured by selecting the attribute in the tree view, then modifying the CompanyName entry in the right-hand side property view.
You can remove an extended attribute from the project by right-clicking on the attribute in the code tree and choosing Remove Attribute.
The Attributes tab also displays instrumentation attributes specified in your source code. When working with these in-code attributes, there are a few things to keep in mind:
In-code attributes will be displayed in the code tree in black text. Extended attributes will be displayed in blue text.
You can override an in-code attribute with an extended attribute. Dotfuscator will then ignore the in-code attribute and not display it in the code tree. The extended attribute will be used instead. Overriding happens when either of the following occurs:
You edit the properties of an in-code attribute via the GUI. Because Dotfuscator does not access the source code, this causes an extended attribute to be created with the changed values.
You add an extended attribute to an assembly or method that already has an in-code attribute of the same type.
If you remove an extended attribute that was overriding an in-code attribute, the in-code attribute will once again take effect.
You cannot remove in-code attributes using the Dotfuscator CE GUI. If you wish to remove such an attribute, you must remove it from the source code itself.
Modifying properties of attributes is usually straightforward; the supported fields will
accept free text (for
provide a drop-down list of supported values (for enumeration properties),
or provide a date picker (for date properties).
However, some properties, when selected, will also display a "..." icon. Clicking it will provide additional functionality for filling the field.
On the StaticEndpoint property of a
SetupAttribute, clicking the "..." icon will open the following dialog:
From here, you can choose of PreEmptive Solutions' predefined endpoints or specify your own URL.
On various SourceOwner and SinkOwner properties, clicking the "..." icon will open the following dialog:
From here, you can choose which type the property will reference.
This tab allows you to configure the injection process at the project level.
There are several options available:
Process PreEmptive analytics attributes: Acts as a master switch for the entire injection process. If checked, injection will be performed as specified by the configured attributes. If unchecked, no injection of any kind will occur.
This setting can also be controlled by right-clicking on the Analytics node in the navigation tree, and checking or unchecking Enable.
Even if injection is disabled, any in-code Check or Analytics attributes will be removed from the processed assemblies. This behavior is controlled by each input's Strip instrumentation attributes option, which cannot be disabled in Community Edition.