سؤال

هل من الممكن استخدام موفر بيانات .NET مخصص دون تثبيته في GAC؟

هل يمكنني الرجوع إلى ملف DLL مخصص وتسجيله داخل ملف التكوين الخاص بي؟

هل كانت مفيدة؟

المحلول

نعم, ، يمكنك تسجيل تنفيذ DbProviderFactory فئة عن طريق إضافة القسم التالي في ملف التكوين الخاص بك:

<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>

ال MyCustomDataProvider لا يلزم تسجيل التجميع في GAC ولكن يمكن نشره مع التطبيق كملف التجمع الخاص.

يمكنك الرجوع إلى موفر البيانات المسجل برمجياً باستخدام القيمة المحددة في ملف invariant يصف.على سبيل المثال، يمكنك إخبار ADO.NET باستخدام ملف MyNamespace.MyCustomProviderFactory عن طريق تحديد MyCustomProvider كما providerName في سلسلة الاتصال:

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

في الكود، يمكنك استخدام نفس اسم الموفر مع ملف DbProviderFactories.GetFactory طريقة:

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

أين factory سيكون مثالا على MyNamespace.MyCustomProviderFactory فصل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top