Czy można użyć niestandardowego dostawcy danych .NET bez instalowania go w GAC?Niestandardowe dostawcy danych .NET
Czy mogę odwołać się do niestandardowej biblioteki DLL i zarejestrować ją w pliku konfiguracyjnym?
Czy można użyć niestandardowego dostawcy danych .NET bez instalowania go w GAC?Niestandardowe dostawcy danych .NET
Czy mogę odwołać się do niestandardowej biblioteki DLL i zarejestrować ją w pliku konfiguracyjnym?
Tak, można zarejestrować implementację klasy DbProviderFactory dodając following section w pliku konfiguracyjnym:
<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>
Zespół MyCustomDataProvider
nie musi być zarejestrowany w GAC ale mogą być wdrażane razem z aplikacją jako private assembly.
Można programowo zarejestrować się w zarejestrowanym dostawcy danych, używając wartości określonej w atrybucie invariant
. Na przykład można powiedzieć ADO.NET używać MyNamespace.MyCustomProviderFactory
określając MyCustomProvider
jako providerName
w ciągu połączenia:
<connectionStrings>
<add name="ConnString"
providerName="MyCustomProvider"
connectionString="MyCustomConnectionString" />
</connectionStrings>
W kodzie można wykorzystać taką samą nazwę dostawcy metodą DbProviderFactories.GetFactory:
DbProviderFactory factory = DbProviderFactories.GetFactory("MyCustomDataProvider");
gdzie factory
będzie instancją klasy MyNamespace.MyCustomProviderFactory
.
Dokładnie to robię. Nie rozumiem, gdzie idę źle? – Mackolicious
Czy próbowałeś podać [w pełni kwalifikowaną nazwę zespołu] (http://msdn.microsoft.com/en-us/library/k8xx4k69.aspx) w atrybucie 'type'? –
Zapomniałem uwzględnić bibliotekę DLL w moim projekcie początkowym. – Mackolicious