Export (0) Print
Expand All

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 ResolveDirectiveProcessor (
	String processorName
)
function ResolveDirectiveProcessor (
	processorName : String
) : Type

Parameters

processorName

The name of the directive processor to be resolved.

Return Value

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 gets run in full trust mode when the template is run. If you create a custom text template transformation 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 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");
}

Community Additions

ADD
Show:
© 2014 Microsoft