Import .Net Assemblies Wizard
This wizard is used for importing .Net assemblies and for generating Delphi classes from the types of the imported assemblies.
Click on the add button
to add .Net Assembly files to the Assembly Names
list. The assemblies can be removed by selecting the assemblies on the list and subsequently
clicking on the remove button
The right part of the screen above displays the properties of the assemblies to be imported. The Delphi
unit name for the assembly can be changed from the property display section. For instance, the name of the above
assembly on the list has been changed from System.Xml to SystemXmlUnit.
To load assemblies from the Global Assembly Cache (GAC), click on the GAC button
and the GAC assembly form below will be shown.
Select the assemblies to import from the GAC assembly form above and click the Ok button to add the selected assemblies to the list.
Click the Next button and go to step 2.
Step 2: This screen allows you to specify which types and the members of the types of the assemblies you want to import.
The members of the type includes the Constructors, Fields, Properties, Methods and Events. In the screen
below, the XmlDocument type has been selected and atleast one member item has also been selected for each member of the type.
You can change the class names of the assembly types by clicking on the Modify Class Name button. The screen below
will be shown where you can change the default class names of the assembly types.
Click the Next button and go to step 3.
Step 3: This screen allows you to determine how the imported assemblies should be loaded by the host library at runtime.
There are four load assembly options; These are:
Load from GAC using Qualified Assembly Name: Selecting this option allows the host library to load the assembly
from the Global Assembly Cache using the qualified assembly name. Example: System.Data, Version=22.214.171.124, Culture=neutral,
Load from GAC using Partial Assembly Name: Selecting this option allows the host library to load the assembly from the
Global Assembly Cache using the partial name of the assembly. Considering the above example, instead of specifying the full
qualified name, you can specify only the name of the assembly. Example: System.Data
Load from File Location: Selecting this option allows the host library to load the assembly from the specified file location.
Load from EXE location: Selecting this option allows the host library to load the assembly from the location of the
Delphi executing file. You can copy your .net assembly files to the Delphi executable file directory and select this option.
Click the Next button and go to step 4.
Step 4: This screen allows you to specify the directory where the generated Delphi files will be stored after import.
You can also select the option(s) for importing the assembly types. These options are:
Separate larger generated Delphi units into different units: Selecting this option allows the process to automatically
separates the Delphi unit to be generated into smaller units if the unit to be generated from the assembly types will be larger and
contains volumnous lines of code making it difficult to debug in Delphi.
Optimize process: Selecting this option allows the process to perform a number of Delphi code optimization.
Exclude public field members of the selected types: Selecting this option allows the process to exclude public field members of the selected types to be imported.
Search and include type references in other assemblies to be imported: Selecting this option allows the process to
search for any dependencies in the list of assemblies to be imported and use the referenced type rather than specifying a default
value or creating a class for the referenced type.
Convert .Net Generics to its equivalent in Delphi: Selecting this option allows the process to convert .Net Generic List and Nullable types to equivalent Generic List and Nullable types in Delphi.
Click the Finish Button to start the process.
After the process is complete, atleast 3 files or Delphi units will have been generated for each assembly file imported. These units are:
Constant Unit: This Delphi unit contains the string constant variables of the assembly ID, the assembly load
option path and the fullnames of the .net assembly types imported. This unit file name is the combination of the name of the
class unit and Const.
Interface Unit: Contains the types and members of the types imported from the .net assembly file which is represented as
interfaces in this unit. These interfaces are inherited by the classes generated and saved in the Class Unit.
Class Unit: Contains the types and members of the types imported from the .net assembly file which is represented as
classes in this unit. More than one class unit can be generated if the option "Separate larger generated Delphi units
into different units" is selected and the assembly file to be imported will result in a larger and voluminous lines of code
in a single unit.
Enums Unit: This Delphi unit contains the enumeration types defined in the imported assembly types. If the assemblies
to be imported do not have any enumeration types, this unit will not be generated. This unit file name is the combination of the name
of the class unit and Enums.