We recommend using Visual Studio 2017
This documentation is archived and is not being maintained.

ITextTemplatingEngineHost.ResolveDirectiveProcessor Method

Returns the type of a directive processor, given its friendly name.

Namespace:  Microsoft.VisualStudio.TextTemplating
Assembly:  Microsoft.VisualStudio.TextTemplating (in Microsoft.VisualStudio.TextTemplating.dll)

Type ResolveDirectiveProcessor(
	string processorName


Type: System.String

The name of the directive processor to be resolved.

Return Value

Type: System.Type
The Type of the directive processor.

The engine calls this method based on the directives the user has specified in the text template. This method can be called 0, 1, or multiple times, for each text template transformation. For more information, see Directive Syntax (Domain-Specific Languages).

If the directive processor name cannot be resolved, this method should throw an exception.

If the mechanism that the host uses to find a directive processor in the method ResolveDirectiveProcessor is not secure, a malicious directive processor could be run. The malicious directive processor could provide code that is run in full trust mode when the template is run. If you create a custom host, you must use a secure mechanism, such as the registry, to locate directive processors. For more information, see Security of Text Templates.

The following code example shows a possible implementation for a custom host. This code example is part of a larger example that is provided for the ITextTemplatingEngineHost interface.

For a more detailed example that shows how to resolve a request for a generated directive processor, see Walkthrough: Connecting a Host to a Generated Directive Processor.

public Type ResolveDirectiveProcessor(string processorName)
    //this host will not resolve any specific processors

    //check the processor name, and if it is the name of a processor the 
    //host wants to support, return the type of the processor
    if (string.Compare(processorName, "XYZ", StringComparison.OrdinalIgnoreCase) == 0)
        //return typeof();

    //this can be customized to search specific paths for the file,
    //or to search the GAC

    //if the directive processor can not be found, throw an error
    throw new Exception("Directive Processor not found");