أنت غير متصل حاليًا، وفي انتظار الإنترنت الخاص بك ليقوم بإعادة الاتصال

BUG: استثناء BadImageFormatException قد تحدث عند استخدام قيد بشكل متكرر تعريف نوع عام في تطبيق يستند إلى .NET Framework 2.0

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية940164
الأعراض
في تطبيق يستند إلى .NET Framework 2.0 Microsoft ، يمكنك استخدام قيد بشكل متكرر تعريف نوع عام. عند القيام بذلك، قد يحدث استثناء BadImageFormatException في وقت التشغيل. تحدث هذه المشكلة فقط في وحدات سيناريو معينة.
السبب
تحدث هذه المشكلة نظرًا لوجود مشكلة في مكونات وقت التشغيل (CLR 2.0) اللغة الشائعة لـ Microsoft Visual Studio 2005.
الحل البديل
كمحاولة للتغلب على هذه المشكلة قم بإزالة القيد فئة من GetClass E ثابتة <e>العامة الأسلوب.

ملاحظة القيود هي حدود وضع على معلمة نوع عام.

لإزالة القيد فئة من GetClass E ثابتة <e>العامة أسلوب بتغيير توقيع الأسلوب كما يلي.

التعليمات البرمجية الموجودة

public static E GetClass<E>() where E : class, new()

رمز الاستبدال

public static E GetClass<E>() where E : new()
تصريح
أقرت Microsoft أن هذا خطأ في منتجات Microsoft المسردة في قسم "تنطبق على".
معلومات أخرى
لمزيد من المعلومات حول generics في CLR قم بزيارة موقع شبكة مطوري Microsoft (MSDN) التالي على الويب:

خطوات إعادة إنشاء المشكلة

  1. على جهاز كمبيوتر يحتوي على Visual Studio 2005 مثبتة إنشاء برنامج C# التالية. باستخدام
    using System;public abstract class AbstractClass1<E> where E : AbstractClass1<E>, new(){ }public class Class1 : AbstractClass1<Class1>{ }public class Class2<E> where E : AbstractClass1<E>, new(){    public E GetClass1()    {        return Factory.GetClass<E>();    }}public class Factory{    public static E GetClass<E>() where E : class, new()    {        return new E();    }}public class Program{    static void Main()    {        Console.WriteLine("Hit enter to continue..");        Console.ReadLine();        Class2<Class1> c2 = new Class2<Class1>();        c2.GetClass1();        Console.WriteLine("Hi");    }}
  2. ترجمة البرنامج ثم قم بتشغيل البرنامج. يحدث الاستثناء BadImageFormatException في وقت التشغيل عند استدعاء الأسلوب c2.GetClass1.

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 940164 - آخر مراجعة: 07/30/2007 18:30:14 - المراجعة: 1.0

Microsoft .NET Framework 2.0, Microsoft Visual Studio 2005 Standard Edition, Microsoft Visual Studio 2005 Professional Edition, Microsoft Visual Studio 2005 Express Edition

  • kbmt kbbug kbtshoot KB940164 KbMtar
تعليقات
=">cript> >/html>ng-repeat="language in languagesListForLargeScreens track by $index" class="col-sm-6 col-xs-24 ng-scope"> Paraguay - Español
Venezuela - Español
/c1.microsoft.com/c.gif?DI=4050&did=1&t=">p;t=">/body>