.NET Framework sınıf kitaplığındaki obsoletions

.NET Framework zaman içinde değişti. Her yeni sürüm, yeni işlevler sağlayan yeni türler ve tür üyeleri ekledi. Mevcut türler ve üyeleri de zaman içinde değişti. Örneğin, destekledikleri teknolojinin yerini yeni bir teknoloji aldıkçe bazı türler daha az önemli hale geldi ve bazı yöntemler bir şekilde üstün olan daha yeni yöntemlerle değiştirildi.

.NET Framework ve ortak dil çalışma zamanı geriye dönük uyumluluğu desteklemeye çalışır (.NET Framework'ün bir sürümüyle geliştirilen uygulamaların bir sonraki .NET Framework sürümünde çalışmasına izin verir). Bu, bir türü veya tür üyesini kaldırmayı zorlaştırır. Bunun yerine, .NET Framework bir türün veya tür üyesinin artık kullanım dışı veya kullanım dışı olarak işaretlenerek kullanılmaması gerektiğini belirtti. Geliştiriciler, bir türü veya üyeyi kullanımdan kaldırarak ortadan kalkacağını ve kaldırılmasına yanıt vermek için zaman olduğunu fark etti. Ancak, türünü veya üyesini kullanan mevcut kod yeni .NET sürümünde çalışmaya devam etti.

Not

.NET'te (Core) bir API'nin kullanımdan kaldırılması, API'nin kaldırılacağı anlamına gelmez. Daha fazla bilgi için bkz . .NET'te API kaldırma.

ObsoleteAttribute özniteliği

.NET Framework, bir tür veya tür üyesini özniteliğiyle ObsoleteAttribute işaretleyerek kullanımdan kaldırıldığını gösterir. Özniteliğin bir türe veya üyeye uygulanması, türün veya üyenin, bu üyeyi kullanan derlenmiş kodu bozmadan gelecekteki bir sürümde kaldırılacağını gösterir.

Türün veya tür üyesinin kullanımdan kaldırıldığını belirtmeye ek olarak, ObsoleteAttribute derleyicinin bu tür veya üyeyi içeren kaynak kodu nasıl işlediğini tanımlar. Derleyici kodu derleyebilir ancak bir uyarı iletisi ya da türün veya üyenin kullanımını hata olarak değerlendirebilir. İlk durumda, kod başarıyla derlenebilir, ancak bir uyarı iletisi türün veya üyenin kullanım dışı olduğunu gösterir. İkinci durumda derleme başarısız olur.

Derleme uyarı iletisi yerine bir hata oluştursa bile, ObsoleteAttribute çalışma zamanı davranışını etkilemez. Başka bir ifadeyle, türünü veya üyesini kullanan ve başarıyla derlenen uygulamalar her zaman başarılı bir şekilde çalışır. Yalnızca türü veya üyeyi kullanan bir uygulamayı yeniden derleme girişimi başarısız olur.

Eski türleri ve üyeleri işleme

Mevcut kodu yükseltip yeniden derlediğinizde, uygulamanızda derleyici uyarısı üreten eski bir tür veya üye kullanmak kabul edilebilir bir durumdur. Ancak, uygulama kodunuzu değiştirmeniz gerekip gerekmediğini belirlemek için derleyici uyarı iletisini gözden geçirmelisiniz. İleti uygun bir alternatifi göstermiyorsa, aşağıdakilerden birini yapmalısınız:

  • Mümkünse türün veya üyenin kullanımını kaldırarak kodunuzu değiştirin.

    -veya-

  • Kullanım dışı bırakma işlemine nasıl yanıt verileceğini belirlemek için bu teknoloji alanının belgelerini gözden geçirin.

Var olan kodu .NET Framework'ün sonraki bir sürümüyle yeniden derlememeyi seçebilirsiniz. Bunun yerine, mevcut derlenmiş kodunuzun çalıştırıldığı .NET Framework sürümünü belirtebilirsiniz. Örneğin, .NET Framework 3.5'e karşı derlenmiş app1.exe adlı bir uygulamanız olduğunu, ancak uygulamanın .NET Framework 4.5'e karşı çalışmasını istediğinizi varsayalım. Bu, aşağıdaki adımları gerektirir:

  1. Ana yürütülebilir dosyanız için bir yapılandırma dosyası oluşturun ve appName.exe.config olarak adlandırın; burada appName, uygulama yürütülebilir dosyasının adıdır. Örneğimizdeki app1.exe adlı uygulama için app1.exe.config adlı bir yapılandırma dosyası oluşturacaksınız.

  2. Yapılandırma dosyasına aşağıdakileri ekleyin.

    <configuration>
       <startup>
          <supportedRuntime version="v4.0" />
       </startup>
    </configuration>
    

.NET Framework'ün belirli bir sürümünü hedeflemek için özniteliğine aşağıdaki dize değerlerinden birini atayın version :

.NET Framework sürümü version Dize
4.8 (4.8.1 dahil) v4.0
4.7 (4.7.1 ve 4.7.2 dahil) v4.0
4.6 (4.6.1 ve 4.6.2 dahil) v4.0
4.5 (4.5.1 ve 4.5.2 dahil) v4.0
4 v4.0
3.5 v2.0.50727
2.0 v2.0.50727
1.1 v1.1.4322
1.0 v1.0.3705

.NET Framework 4.5 ve sonraki sürümleri için eski API'ler

Önceki sürümler için eski API'ler

Ayrıca bkz.