اذهب إلى المحتوى

السؤال

نشر

برمجت مكتبة أستعملها في بعض مشاريعي على Visaul Studio وأريد التأكد من وجود المكتبة بالبرنامج قبل استخدامها، لكن أحصل على خطأ error capture عند تشغيل التطبيق، مع العلم أني ﻷتحقق من وجود المكتبة عن طريق:

try
{
    MyLibrary library = new MyLibrary();
}
catch (Exception e)
{
    MessageBox.Show("Your library is not installed");
    Close();
}

من المفروض في عدم وجود المكتبة ظهور الخطأ وإغلاق التطبيق، لكن هذا ما لا يحدث، فما الحل؟

Recommended Posts

  • 0
نشر

استعمال الدالة try-catch لاستخراج الخطأ لن تفي بالغرض في هذه الحالة، وذلك راجع إلى ان هذا النوع من الأخطاء من نوع AsseblbyResolve لا يعالج بـ try-catch، فإليك الحل:

class Test
{
    public static void Main()
    {
        AppDomain currentDomain = AppDomain.CurrentDomain;
        currentDomain.AssemblyResolve += MyResolveEventHandler;

    }


    private static Assembly MyResolveEventHandler(object sender, ResolveEventArgs args)
    {
        Console.WriteLine("Try resolving: " + args.Name);
        return null;
    }
}

المصدر

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...