|Dotfuscator > Understanding Instrumentation with Dotfuscator > Instrumentation Injection > PreEmptive Analytics Custom Attributes > Assembly Level Attributes|
All PreEmptive Analytics messages need to contain common information about the entity and application sending the message. The developer provides this information in a set of custom attributes that are placed on one or more of the assemblies making up the application.
Unlike most other attributes, Dotfuscator does not remove assembly level attributes from the assembly after processing. Rather than removing them, Dotfuscator translates them into a form that the PreEmptive Analytics runtime can read when the application loads.
For more information, see the custom attribute reference.
Most of the Assembly level attributes require a unique identifier. Except where noted, the identifiers must be generated and maintained by the developer. It is recommended that generated identifier strings use the standard GUID format. Examples:
|Examples of Unique Identifiers||
Every assembly containing an entry point method should also have an Application attribute. The Application attribute provides information about the application sending PreEmptive Analytics data. Most important is the application ID, a unique identifier that should not change over the lifetime of the application. The application ID is required to allow a PreEmptive Analytics Endpoint to aggregate data about an application across name and version number changes.
The application attribute has other properties, including name and version. These properties are not required. If not specified in the application attribute, the PreEmptive Analytics code will try to acquire the application name and version by reflecting on the assembly. Alternatively, if the name and version are specified in the application attribute, then the PreEmptive Analytics code uses these values instead of reflecting on the assembly.
Every assembly containing a tamper checking method must also have a Binary attribute. The Binary attribute provides information about a specific component (assembly) in the application. Each assembly must have its own Binary attribute with its own corresponding ID. IDs specified in this attribute are sent in Tamper Notification messages to identify specific binaries (assemblies) that make up an application. This attribute is not required to be present.
|Note: Binary information is not sent as part of application start and stop messages; it is sent as part of tamper detection messages.|
Every assembly containing an entry point method should also have a Business attribute. The Business attribute provides information about the organization that built the application. The most important property is the company key. The company key is a unique identifier that is provided to each business entity, it is usually a generated guid.
The Business attribute and company key are required for PreEmptive Analytics to work properly.