DirectoryCatalog DirectoryCatalog DirectoryCatalog DirectoryCatalog Class

Definición

Detecta las partes con atributos en los ensamblados de un directorio especificado.Discovers attributed parts in the assemblies in a specified directory.

public ref class DirectoryCatalog : System::ComponentModel::Composition::Primitives::ComposablePartCatalog, System::ComponentModel::Composition::Hosting::INotifyComposablePartCatalogChanged, System::ComponentModel::Composition::Primitives::ICompositionElement
public class DirectoryCatalog : System.ComponentModel.Composition.Primitives.ComposablePartCatalog, System.ComponentModel.Composition.Hosting.INotifyComposablePartCatalogChanged, System.ComponentModel.Composition.Primitives.ICompositionElement
type DirectoryCatalog = class
    inherit ComposablePartCatalog
    interface INotifyComposablePartCatalogChanged
    interface ICompositionElement
Public Class DirectoryCatalog
Inherits ComposablePartCatalog
Implements ICompositionElement, INotifyComposablePartCatalogChanged
Herencia
Implementaciones

Ejemplos

En el ejemplo siguiente se DirectoryCatalog crea un objeto que busca elementos en el directorio desde el que se ejecuta la aplicación.The following example creates a DirectoryCatalog object that searches the directory the application runs from for parts. Usa una importación simple para probar el catálogo.It uses a simple import to test the catalog. Para completar esta importación, un archivo DLL en el directorio debe tener una exportación coincidente, tal como se muestra en el segundo bloque de código.To fulfill this import, a DLL in the directory must have a matching export, as illustrated in the second code block.

public class Test2
{
    [Import]
    public Test1 data { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        DirectoryCatalog catalog = new DirectoryCatalog(".");
        CompositionContainer container = new CompositionContainer(catalog);
        Test2 test = new Test2();
        container.SatisfyImportsOnce(test);
        Console.WriteLine(test.data.data);
        Console.ReadLine();
    }
}
Public Class Test2
    <Import()>
    Public Property data As Test1
End Class

Sub Main()
    Dim catalog As New DirectoryCatalog(".")
    Dim container As New CompositionContainer(catalog)
    Dim test As New Test2()
    container.SatisfyImportsOnce(test)
    Console.WriteLine(test.data.data)
    Console.ReadLine()
End Sub

Para crear la exportación correspondiente, el código siguiente debe estar en un archivo DLL.To create the matching export, the following code must be in a DLL file. Para crear un archivo DLL en Visual Studio, agregue un nuevo proyecto del tipo "biblioteca de clases" a la solución y coloque este código en él.To create a DLL file in Visual Studio, add a new project of the type "Class Library" to your solution, and place this code in it.

[Export]
public class Test1
{
    public String data = "The data!";
}
<Export()>
Public Class Test1
    Public ReadOnly Property data As String
        Get
            Return "The data!"
        End Get
    End Property
End Class

Comentarios

Puede usar un DirectoryCatalog objeto para analizar el contenido de un directorio designado.You can use a DirectoryCatalog object to parse the contents of a designated directory. Los elementos con atributos contenidos en los archivos de biblioteca de vínculos dinámicos (DLL) se extraen y se ponen a disposición a través del catálogo. Para restringir el análisis a archivos dll específicos, puede especificar un patrón de búsqueda con la misma sintaxis Directory.GetFiles que el método.Any attributed parts contained in dynamic link library (DLL) files are extracted and made available through the catalog.To restrict parsing to specific DLLs, you can specify a search pattern by using the same syntax as the Directory.GetFiles method.

Advertencia

El directorio designado no debe permitir el acceso a los usuarios que no son administradores.The designated directory should not allow access to non-administrators. Por ejemplo, el uso de una carpeta que contenga archivos temporales de Internet podría crear vulnerabilidades en la aplicación.For example, using a folder that contains temporary Internet files could create vulnerabilities in your application.

Este tipo implementa la interfaz IDisposable.This type implements the IDisposable interface. Cuando haya terminado de utilizar el tipo, debe desecharlo directa o indirectamente.When you have finished using the type, you should dispose of it either directly or indirectly. Para eliminar el tipo directamente, llame a su método Dispose en un bloque try/catch.To dispose of the type directly, call its Dispose method in a try/catch block. Para deshacerse de él indirectamente, use una construcción de lenguaje como using (en C#) o Using (en Visual Basic).To dispose of it indirectly, use a language construct such as using (in C#) or Using (in Visual Basic). Para más información, vea la sección "Uso de objetos que implementan IDisposable" en el tema de la interfaz IDisposable.For more information, see the "Using an Object that Implements IDisposable" section in the IDisposable interface topic.

Constructores

DirectoryCatalog(String) DirectoryCatalog(String) DirectoryCatalog(String) DirectoryCatalog(String)

Inicializa una nueva instancia de la clase DirectoryCatalog con objetos ComposablePartDefinition basándose en todos los archivos DLL ubicados en la ruta de acceso al directorio especificado.Initializes a new instance of the DirectoryCatalog class by using ComposablePartDefinition objects based on all the DLL files in the specified directory path.

DirectoryCatalog(String, ICompositionElement) DirectoryCatalog(String, ICompositionElement) DirectoryCatalog(String, ICompositionElement) DirectoryCatalog(String, ICompositionElement)

Inicializa una nueva instancia de la clase DirectoryCatalog usando objetos ComposablePartDefinition basándose en todos los archivos DLL de la ruta de acceso de directorio especificada con el origen especificado para los elementos.Initializes a new instance of the DirectoryCatalog class by using ComposablePartDefinition objects based on all the DLL files in the specified directory path with the specified source for parts.

DirectoryCatalog(String, ReflectionContext) DirectoryCatalog(String, ReflectionContext) DirectoryCatalog(String, ReflectionContext) DirectoryCatalog(String, ReflectionContext)

Inicializa una nueva instancia de la clase DirectoryCatalog usando objetos ComposablePartDefinition basándose en todos los archivos DLL de la ruta de acceso de directorio especificada, en el contexto de reflexión especificado.Initializes a new instance of the DirectoryCatalog class by using ComposablePartDefinition objects based on all the DLL files in the specified directory path, in the specified reflection context.

DirectoryCatalog(String, ReflectionContext, ICompositionElement) DirectoryCatalog(String, ReflectionContext, ICompositionElement) DirectoryCatalog(String, ReflectionContext, ICompositionElement) DirectoryCatalog(String, ReflectionContext, ICompositionElement)

Inicializa una nueva instancia de la clase DirectoryCatalog usando objetos ComposablePartDefinition basándose en todos los archivos DLL de la ruta de acceso de directorio especificada, en el contexto de reflexión especificado.Initializes a new instance of the DirectoryCatalog class by using ComposablePartDefinition objects based on all the DLL files in the specified directory path, in the specified reflection context.

DirectoryCatalog(String, String) DirectoryCatalog(String, String) DirectoryCatalog(String, String) DirectoryCatalog(String, String)

Inicializa una nueva instancia de la clase DirectoryCatalog con objetos ComposablePartDefinition que se corresponden con un patrón de búsqueda especificado en la ruta de acceso al directorio especificado.Initializes a new instance of the DirectoryCatalog class by using ComposablePartDefinition objects that match a specified search pattern in the specified directory path.

DirectoryCatalog(String, String, ICompositionElement) DirectoryCatalog(String, String, ICompositionElement) DirectoryCatalog(String, String, ICompositionElement) DirectoryCatalog(String, String, ICompositionElement)

Inicializa una nueva instancia de la clase DirectoryCatalog con objetos ComposablePartDefinition basándose en el modelo de búsqueda especificado en la ruta de acceso al directorio especificado con el origen especificado para las partes.Initializes a new instance of the DirectoryCatalog class by using ComposablePartDefinition objects based on the specified search pattern in the specified directory path with the specified source for parts.

DirectoryCatalog(String, String, ReflectionContext) DirectoryCatalog(String, String, ReflectionContext) DirectoryCatalog(String, String, ReflectionContext) DirectoryCatalog(String, String, ReflectionContext)

Inicializa una nueva instancia de la clase DirectoryCatalog con objetos ComposablePartDefinition basándose en el modelo de búsqueda especificado en la ruta de acceso al directorio especificado con contexto de reflejo especificado.Initializes a new instance of the DirectoryCatalog class by using ComposablePartDefinition objects based on the specified search pattern in the specified directory path, using the specified reflection context.

DirectoryCatalog(String, String, ReflectionContext, ICompositionElement) DirectoryCatalog(String, String, ReflectionContext, ICompositionElement) DirectoryCatalog(String, String, ReflectionContext, ICompositionElement) DirectoryCatalog(String, String, ReflectionContext, ICompositionElement)

Inicializa una nueva instancia de la clase DirectoryCatalog con objetos ComposablePartDefinition basándose en el modelo de búsqueda especificado en la ruta de acceso al directorio especificado con contexto de reflejo especificado.Initializes a new instance of the DirectoryCatalog class by using ComposablePartDefinition objects based on the specified search pattern in the specified directory path, using the specified reflection context.

Propiedades

FullPath FullPath FullPath FullPath

Obtiene la ruta de acceso absoluta convertida que el objeto DirectoryCatalog observa.Gets the translated absolute path observed by the DirectoryCatalog object.

LoadedFiles LoadedFiles LoadedFiles LoadedFiles

Obtiene la colección de archivos actualmente cargados en el catálogo.Gets the collection of files currently loaded in the catalog.

Parts Parts Parts Parts

Obtiene las definiciones de elemento incluidas en el catálogo de directorios.Gets the part definitions that are contained in the directory catalog.

Path Path Path Path

Obtiene la ruta de acceso observada por el objeto DirectoryCatalog.Gets the path observed by the DirectoryCatalog object.

SearchPattern SearchPattern SearchPattern SearchPattern

Obtiene el modelo de búsqueda que se ha pasado al constructor de DirectoryCatalog.Gets the search pattern that is passed into the constructor of the DirectoryCatalog object.

Métodos

Dispose() Dispose() Dispose() Dispose()

Libera todos los recursos que usa ComposablePartCatalog.Releases all resources used by the ComposablePartCatalog.

(Inherited from ComposablePartCatalog)
Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

Libera los recursos no administrados que usa DirectoryCatalog y, de forma opcional, libera los recursos administrados.Releases the unmanaged resources used by the DirectoryCatalog and optionally releases the managed resources.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina si el objeto especificado es igual al objeto actual.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetEnumerator() GetEnumerator() GetEnumerator() GetEnumerator()

Devuelve un enumerador que recorre en iteración el catálogo.Returns an enumerator that iterates through the catalog.

GetExports(ImportDefinition) GetExports(ImportDefinition) GetExports(ImportDefinition) GetExports(ImportDefinition)

Obtiene las definiciones de exportación que corresponden a la restricción expresada por la definición de importación especificada.Gets the export definitions that match the constraint expressed by the specified import definition.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Sirve como la función hash predeterminada.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Inherited from Object)
OnChanged(ComposablePartCatalogChangeEventArgs) OnChanged(ComposablePartCatalogChangeEventArgs) OnChanged(ComposablePartCatalogChangeEventArgs) OnChanged(ComposablePartCatalogChangeEventArgs)

Genera el evento Changed.Raises the Changed event.

OnChanging(ComposablePartCatalogChangeEventArgs) OnChanging(ComposablePartCatalogChangeEventArgs) OnChanging(ComposablePartCatalogChangeEventArgs) OnChanging(ComposablePartCatalogChangeEventArgs)

Genera el evento Changing.Raises the Changing event.

Refresh() Refresh() Refresh() Refresh()

Actualiza los objetos ComposablePartDefinition con los archivos más recientes del directorio que coinciden con el modelo de búsqueda.Refreshes the ComposablePartDefinition objects with the latest files in the directory that match the search pattern.

ToString() ToString() ToString() ToString()

Obtiene una representación de cadena del catálogo de directorios.Gets a string representation of the directory catalog.

Eventos

Changed Changed Changed Changed

Se produce cuando cambia el contenido del catálogo.Occurs when the contents of the catalog has changed.

Changing Changing Changing Changing

Se produce cuando cambia el catálogo.Occurs when the catalog is changing.

Implementaciones de interfaz explícitas

ICompositionElement.DisplayName ICompositionElement.DisplayName ICompositionElement.DisplayName ICompositionElement.DisplayName

Obtiene el nombre para mostrar del catálogo de directorios.Gets the display name of the directory catalog.

ICompositionElement.Origin ICompositionElement.Origin ICompositionElement.Origin ICompositionElement.Origin

Obtiene el elemento de composición en el que se origina el catálogo de directorios.Gets the composition element from which the directory catalog originated.

IEnumerable.GetEnumerator() IEnumerable.GetEnumerator() IEnumerable.GetEnumerator() IEnumerable.GetEnumerator()

Devuelve un enumerador que recorre en iteración el catálogo.Returns an enumerator that iterates through the catalog.

(Inherited from ComposablePartCatalog)

Métodos de extensión

CreateCompositionService(ComposablePartCatalog) CreateCompositionService(ComposablePartCatalog) CreateCompositionService(ComposablePartCatalog) CreateCompositionService(ComposablePartCatalog)

Crea un nuevo servicio de composición mediante el catálogo especificado como origen de las exportaciones.Creates a new composition service by using the specified catalog as a source for exports.

Filter(ComposablePartCatalog, Func<ComposablePartDefinition,Boolean>) Filter(ComposablePartCatalog, Func<ComposablePartDefinition,Boolean>) Filter(ComposablePartCatalog, Func<ComposablePartDefinition,Boolean>) Filter(ComposablePartCatalog, Func<ComposablePartDefinition,Boolean>)

Filtra el catálogo especificado con la función de filtro especificada.Filters the specified catalog with the specified filter function.

CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>) CopyToDataTable<T>(IEnumerable<T>)

Devuelve un objeto DataTable que contiene copias de los objetos DataRow, dado un objeto IEnumerable<T> de entrada donde el parámetro T genérico es DataRow.Returns a DataTable that contains copies of the DataRow objects, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption)

Copia objetos DataRow en el objeto DataTable especificado, dado un objeto IEnumerable<T> de entrada donde el parámetro T genérico es DataRow.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler) CopyToDataTable<T>(IEnumerable<T>, DataTable, LoadOption, FillErrorEventHandler)

Copia objetos DataRow en el objeto DataTable especificado, dado un objeto IEnumerable<T> de entrada donde el parámetro T genérico es DataRow.Copies DataRow objects to the specified DataTable, given an input IEnumerable<T> object where the generic parameter T is DataRow.

Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable) Cast<TResult>(IEnumerable)

Convierte los elementos de IEnumerable en el tipo especificado.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable) OfType<TResult>(IEnumerable)

Filtra los elementos de IEnumerable en función de un tipo especificado.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable) AsParallel(IEnumerable)

Habilita la paralelización de una consulta.Enables parallelization of a query.

AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable) AsQueryable(IEnumerable)

Convierte una interfaz IEnumerable en IQueryable.Converts an IEnumerable to an IQueryable.

Ancestors<T>(IEnumerable<T>) Ancestors<T>(IEnumerable<T>) Ancestors<T>(IEnumerable<T>) Ancestors<T>(IEnumerable<T>)

Devuelve una colección de elementos que contiene los antecesores de todos los nodos de la colección de origen.Returns a collection of elements that contains the ancestors of every node in the source collection.

Ancestors<T>(IEnumerable<T>, XName) Ancestors<T>(IEnumerable<T>, XName) Ancestors<T>(IEnumerable<T>, XName) Ancestors<T>(IEnumerable<T>, XName)

Devuelve una colección de elementos filtrada que contiene los antecesores de todos los nodos de la colección de origen.Returns a filtered collection of elements that contains the ancestors of every node in the source collection. En la colección sólo se incluyen los elementos que tienen un objeto XName coincidente.Only elements that have a matching XName are included in the collection.

DescendantNodes<T>(IEnumerable<T>) DescendantNodes<T>(IEnumerable<T>) DescendantNodes<T>(IEnumerable<T>) DescendantNodes<T>(IEnumerable<T>)

Devuelve una colección de los nodos descendientes de todos los documentos y elementos de la colección de origen.Returns a collection of the descendant nodes of every document and element in the source collection.

Descendants<T>(IEnumerable<T>) Descendants<T>(IEnumerable<T>) Descendants<T>(IEnumerable<T>) Descendants<T>(IEnumerable<T>)

Devuelve una colección de elementos que contiene los elementos descendientes de todos los elementos y documentos de la colección de origen.Returns a collection of elements that contains the descendant elements of every element and document in the source collection.

Descendants<T>(IEnumerable<T>, XName) Descendants<T>(IEnumerable<T>, XName) Descendants<T>(IEnumerable<T>, XName) Descendants<T>(IEnumerable<T>, XName)

Devuelve una colección filtrada de elementos que contiene los elementos descendientes de todos los elementos y documentos de la colección de origen.Returns a filtered collection of elements that contains the descendant elements of every element and document in the source collection. En la colección sólo se incluyen los elementos que tienen un objeto XName coincidente.Only elements that have a matching XName are included in the collection.

Elements<T>(IEnumerable<T>) Elements<T>(IEnumerable<T>) Elements<T>(IEnumerable<T>) Elements<T>(IEnumerable<T>)

Devuelve una colección de los elementos secundarios de todos los elementos y documentos de la colección de origen.Returns a collection of the child elements of every element and document in the source collection.

Elements<T>(IEnumerable<T>, XName) Elements<T>(IEnumerable<T>, XName) Elements<T>(IEnumerable<T>, XName) Elements<T>(IEnumerable<T>, XName)

Devuelve una colección filtrada de los elementos secundarios de todos los elementos y documentos de la colección de origen.Returns a filtered collection of the child elements of every element and document in the source collection. En la colección sólo se incluyen los elementos que tienen un objeto XName coincidente.Only elements that have a matching XName are included in the collection.

InDocumentOrder<T>(IEnumerable<T>) InDocumentOrder<T>(IEnumerable<T>) InDocumentOrder<T>(IEnumerable<T>) InDocumentOrder<T>(IEnumerable<T>)

Devuelve una colección de nodos que contiene todos los nodos de la colección de origen, clasificados por documento.Returns a collection of nodes that contains all nodes in the source collection, sorted in document order.

Nodes<T>(IEnumerable<T>) Nodes<T>(IEnumerable<T>) Nodes<T>(IEnumerable<T>) Nodes<T>(IEnumerable<T>)

Devuelve una colección de los nodos secundarios de todos los documentos y elementos de la colección de origen.Returns a collection of the child nodes of every document and element in the source collection.

Remove<T>(IEnumerable<T>) Remove<T>(IEnumerable<T>) Remove<T>(IEnumerable<T>) Remove<T>(IEnumerable<T>)

Quita todos los nodos de la colección de origen de su nodo primario.Removes every node in the source collection from its parent node.

Se aplica a