Freigeben über


ITextTemplatingEngineHost.ResolveAssemblyReference-Methode

Ermöglicht es einem Host, zusätzliche Informationen über den Speicherort einer Assembly bereitzustellen.

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

Syntax

'Declaration
Function ResolveAssemblyReference ( _
    assemblyReference As String _
) As String
string ResolveAssemblyReference(
    string assemblyReference
)
String^ ResolveAssemblyReference(
    String^ assemblyReference
)
abstract ResolveAssemblyReference : 
        assemblyReference:string -> string 
function ResolveAssemblyReference(
    assemblyReference : String
) : String

Parameter

  • assemblyReference
    Typ: System.String
    Die aufzulösende Assembly.

Rückgabewert

Typ: System.String
Ein String, der den angegebenen Assemblyverweis oder den Assemblyverweis mit zusätzlichen Informationen enthält.

Hinweise

Wenn der Benutzer die optionale assembly-Direktive in einer Textvorlage angegeben hat, ruft das Modul diese Methode auf. Diese Methode kann als 0-mal, 1-mal oder mehrmals für jede Textvorlagentransformation aufgerufen werden. Weitere Informationen finden Sie unter T4-Textvorlagendirektiven.

Ein Host kann nach der Assembly an anderen Speicherorten suchen, in der Reihenfolge, die er vorzieht, oder aber einen Pfad seiner Wahl am Anfang des Assemblyverweises hinzufügen.

Beispiele

Im folgenden Codebeispiel wird eine mögliche Implementierung für einen benutzerdefinierten Host veranschaulicht. Dieses Codebeispiel ist Teil eines umfangreicheren Beispiels. Das vollständige Beispiel finden Sie unter Exemplarische Vorgehensweise: Erstellen eines benutzerdefinierten Textvorlagenhosts.

public string ResolveAssemblyReference(string assemblyReference)
{
    //if the argument is the fully qualified path of an existing file,
    //then we are done (this does not do any work)
    //----------------------------------------------------------------
    if (File.Exists(assemblyReference))
    {
        return assemblyReference;
    }

    //the assembly might be in the same folder as the text template that 
    //called the directive
    //----------------------------------------------------------------
    string candidate = Path.Combine(Path.GetDirectoryName(this.inputFile), assemblyReference);
    if (File.Exists(candidate))
    {
        return candidate;
    }
        
    //this can be customized to search specific paths for the file,
    //or to search the GAC
    //----------------------------------------------------------------

    //this can be customized to accept paths to search as command line
    //arguments
    //----------------------------------------------------------------

    //if we cannot do better - return the original file name
    return "";
}
Public Function ResolveAssemblyReference(ByVal assemblyReference As String) As String Implements Microsoft.VisualStudio.TextTemplating.ITextTemplatingEngineHost.ResolveAssemblyReference

    'if the argument is the fully qualified path of an existing file,
    'then we are done (this does not do any work)
    '----------------------------------------------------------------
    If File.Exists(assemblyReference) Then
        Return assemblyReference
    End If


    'the assembly might be in the same folder as the text template that 
    'called the directive
    '----------------------------------------------------------------
    Dim candidate As String = Path.Combine(Path.GetDirectoryName(Me.inputFile), assemblyReference)
    If File.Exists(candidate) Then
        Return candidate
    End If

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

    'this can be customized to accept paths to search as command line
    'arguments
    '----------------------------------------------------------------

    'if we cannot do better - return the original file name
    Return ""
End Function

.NET Framework-Sicherheit

Siehe auch

Referenz

ITextTemplatingEngineHost Schnittstelle

Microsoft.VisualStudio.TextTemplating-Namespace

ResolveDirectiveProcessor

ResolvePath

Weitere Ressourcen

Exemplarische Vorgehensweise: Erstellen eines benutzerdefinierten Textvorlagenhosts