2012-02-27 14 views

Respuesta

6

, se puede registrar una implementación de la clase DbProviderFactory añadiendo el following section en su fichero de configuración:

<system.data> 
    <DbProviderFactories> 
     <add name="My Custom Data Provider" 
      invariant="MyCustomDataProvider" 
      description="Data Provider for My Custom Store" 
      type="MyNamespace.MyCustomProviderFactory, MyCustomDataProvider, Version=1.0.0.0, Culture=neutral, PublicKeyToken=" /> 
    </DbProviderFactories> 
</system.data> 

El conjunto MyCustomDataProvider no tiene que ser registrado en la GAC, pero puede ser desplegado junto con la aplicación como private assembly.

Puede consultar el proveedor de datos registrado mediante programación utilizando el valor especificado en el atributo invariant. Por ejemplo, usted podría decir ADO.NET para utilizar el MyNamespace.MyCustomProviderFactory especificando MyCustomProvider como el providerName en la cadena de conexión:

<connectionStrings> 
    <add name="ConnString" 
     providerName="MyCustomProvider" 
     connectionString="MyCustomConnectionString" /> 
</connectionStrings> 

En el código se puede utilizar el mismo nombre del proveedor con el método DbProviderFactories.GetFactory:

DbProviderFactory factory = DbProviderFactories.GetFactory("MyCustomDataProvider"); 

donde factory será una instancia de la clase MyNamespace.MyCustomProviderFactory.

+0

Eso es exactamente lo que estoy haciendo. No entiendo donde me estoy equivocando? – Mackolicious

+0

¿Ha intentado especificar el [nombre completo del ensamblado] (http://msdn.microsoft.com/en-us/library/k8xx4k69.aspx) en el atributo 'type'? –

+0

Olvidé incluir la DLL en mi proyecto de inicio. – Mackolicious

Cuestiones relacionadas