Şu anda çevrimdışısınız; İnternet'in yeniden bağlanması bekleniyor

Hata: genel türde bir özyinelemeli olarak tanımlanan kısıtlaması .NET Framework 2.0 tabanlı bir uygulama kullandığınızda BIR BadImageFormatException özel durumu oluşabilir

ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.

Makalenin İngilizcesi aşağıdaki gibidir:940164
Belirtiler
Microsoft .NET Framework 2.0 tabanlı bir uygulama, genel türde bir özyinelemeli olarak tanımlanan kısıtlaması kullanın. Bunu yaptığınızda, BadImageFormatException bir özel durum, çalıştırma sırasında oluşabilir. Bu sorun belirli senaryolarda ortaya çıkar.
Neden
Bu sorun, Microsoft Visual Studio 2005 ortak dil çalışma zamanı (CLR 2.0) bileşenleri, bir sorun nedeniyle oluşur.
Pratik Çözüm
Bu soruna geçici bir çözüm bulmak için <a0></a0>, sınıf kısıtlaması kaldırmak ortak statik E GetClass <e> yöntemi.

Not Genel tür parametreleri yerleştirilir sınırları kısıtlamaları var.

Sınıf kısıtlaması kaldırmak için ortak statik E GetClass <e> yöntemi, yöntem imzası aşağıdaki gibi değişir.

Varolan bir kodu

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

Değiştirilecek kodu

public static E GetClass<E>() where E : new()
Durum
Microsoft bu durumun, "Geçerli Olduğu Ürünler" bölümünde listelenen Microsoft ürünlerinde bir hata olduğunu onaylamıştır.
Daha fazla bilgi
CLR içinde tutabilen hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:

Sorunu Yeniden Oluşturma Adımları

  1. Visual Studio 2005 yüklü olan bir bilgisayarda, aşağıdaki C# program oluşturun.
    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. Programı derlemek ve programı çalıştırın. BadImageFormatException özel durum, çalıştırma sırasında c2.GetClass1 yöntemi çağrıldığında ortaya çıkar.

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 940164 - Son İnceleme: 07/30/2007 18:30:14 - Düzeltme: 1.0

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

  • kbmt kbbug kbtshoot KB940164 KbMttr
Geri bildirim