Determining the Default Namespace of a Project
For Visual Basic, if the CustomToolNamespace
property is set on the input file, then the value of CustomToolNamespace
becomes the value of the default namespace parameter passed to the Generate method. Otherwise, the wszDefaultNamespace
parameter passed to Generate
is always equal to the root namespace. For more information on namespaces, see Namespace Keywords.
Visual C# uses folder-based namespaces. That is, the namespace consists of the root namespace, plus names of any folders containing the custom tool. Each folder name is converted into a valid identifier, and periods separate all names. For example, if the input file is FolderA\FolderB\FolderC\MyInput.txt, and the root namespace is CL9, then the computed default namespace would be CL9.FolderA.FolderB.FolderC.
An exception to this rule occurs when the hierarchy chain contains a Web reference folder. For example, if:
FolderC were a Web reference folder, the namespace would be CL9.FolderC.
FolderB were a Web reference folder, the namespace would be CL9.FolderB.FolderC.
That is, the namespace uses the following format:
rootNamespace.webReferenceFolder.containedFolder.containedFolder ...
See Also
Implementing Single-File Generators
Registering Single File Generators
Exposing Types to Visual Designers