Aracılığıyla paylaş


CheckId Tarafından Yönetilen Kod için Kod Analizi Uyarıları

Aşağıdaki tablo uyarının CheckId tanımlayıcısı tarafından yönetilen kodu için Kod Çözümleyicisi uyarılarını listeler.

Uyarılar

CheckId

Uyarı

Açıklama

CA1000

CA1000: Genel türlerde statik üyeleri belirtme

Genel türün statik üyesi çağrıldığında tür bağımsız değişkeni tür için belirlenmelidir.Destek çıkarımı desteklenmeyen genel örnek üyesi çağrıldığında tür bağımsız değişkeni üye için belirlenmelidir.Bu iki durumda tür bağımsız değişkenini belirleyen sözdizimi farklıdır ve kolaylıkla karıştırılır.

CA1001

CA1001: Atılabilir alanlara sahip olan türler atılabilir olmalıdır

Bir sınıf System.IDisposable tipi örnek alanını derler ve uygular ve sınıf IDisposable'ı uygulamaz.IDisposable alanını derleyen sınıf, yönetilmeyen kaynağı dolaylı yoldan sahiplenir ve IDisposable arayüzünü uygulamalıdır.

CA1002

CA1002: Genel listeleri gösterme

System.Collections.Generic.List<(Of <(T>)>) devralma için değil, performans için tasarlanmış bir genel koleksiyondur.Bu nedenle, Liste herhangi bir sanal üyeyi içermiyor.Bunun yerine devralma için tasarlanmış genel koleksiyonlar maruz kalmalıdır.

CA1003

CA1003: Genel olay işleyici örnekleri kullan

Tip boş döndürülen, imzası iki parametre (birincisi nesne ve ikincisi EventArgs'a imza atabilen tip) içerir ve Microsoft .NET Framework 2.0'ı hedef alan derlemeyi içeren bir temsilci içerir.

CA1004

CA1004: Genel yöntemler tür parametresi sağlamalıdır

Tip argümanının açıkça özelleştirilmesi yerine yöntemi geçen argüman tipiyle tanımlanan genel yöntemin nasıl tip argümanı olduğunun sonucudur.Çıkarımı etkinleştirmek için bir genel yöntem parametre imzası yöntem türü parametresi gibi aynı türde bir parametre içermelidir.Bu durumda, tip bağımsız değişkeninin belirtilmesine gerek yoktur.Tüm tip parametreleri için çıkarım kullanılırken, genel ve genel olmayan örnek yöntemleri için sözdüzümü benzerdir; bu genel yöntemlerin kullanımını kolaylaştırır.

CA1005

CA1005: Genel türlerde aşırı parametrelerden kaçının

Daha çok tip parametresi, genel tip içerir, bilmek daha zordur ve hangi tip parametrelerinin temsil ettiğini anımsamak zordur.Bu genellikle <T> Listesi gibi tek tip parametre ile açıktır ve daha kesin durumlarda sözlükteki <TKey, TValue> gibi iki tip parametre içerir.Ancak, iki parametreden fazla parametre varsa, birçok kullanıcı için zorluk derecesi artar.

CA1006

CA1006: Üye imzalarında genel türleri iç içe kullanmayın

Bir yuvalanmış bağımsız değişken aynı zamanda genel tip olan bir tip bağımsız değişkendir.Yuvalanmış tip bağımsız değişkeni içeren imzası olan bir üye çağırmak için, kullanıcı bir genel tipi örneklemeli ve bu tipi ikinci bir genel tipin yapıcısına geçirmelidir.Gerekli yordam ve sözdizimi karmaşıktır ve kaçınılmalıdır.

CA1007

CA1007: Uygun yerlerde genel türler kullanın

System.Object türünde bir başvuru parametresi dışarıdan görünen bir yöntem içerir.Bir genel yöntem kullanımı başvuru parametresi türünü ilk tür olarak atmadan yönteme aktarılan kısıtlamalar için tüm türleri ve konuları etkinleştirir.

CA1008

CA1008: Numaralandırmalar sıfır değerine sahip olmalıdır

Tıpkı diğer türler gibi, başlatılmamış bir numaralandırmanın varsayılan değeri sıfırdır.İşaretlenmemiş bir geçerli numaralandırma, varsayılan değerin geçerli bir numaralandırma değeri olması için değeri sıfır olan bir üye tanımlaması gerekir.Numaralandırma FlagsAttribute özniteliği sıfır değerli üyeyi tanımlarsa, onun adı numaralandırmada hiçbir değerin ayarlanmadığı "Hiçbiri" olmalıdır.

CA1009

CA1009: Olay işleyicilerini doğru bildirin

Olay işleyicisi yöntemleri iki parametre alır.İlk System.Object türündedir ve "gönderen" olarak adlandırılır.Bu olayda oluşan nesnedir.İkinci parametre System.EventArgs türüdür ve "e" olarak adlandırılır.Bu olay ile ilişkilendirilmiş olan verilerdir.Olay işleyici yöntemlerine bir değer döndürmemelidir; C# programlama diliyle, dönüş türü boşluk tarafından belirtilir.

CA1010

CA1010: Koleksiyonlar genel arabirim uygulamalıdır

Bir koleksiyon kullanılabilirliğini genişletmek için genel koleksiyon arabirimlerinden birini uygulayın.Daha sonra koleksiyon genel koleksiyon türlerini doldurmak için kullanılabilir.

CA1011

CA1011: Temel türleri parametre olarak geçirmeyi düşünün

Temel tür yöntem bildiriminde parametre olarak belirtildiğinde temel türünden türetilen herhangi bir tür yöntemine karşılık gelen bağımsız değişken olarak geçirilebilir.Türetilmiş parametre türü tarafından sağlanan ek işlevler gerekmiyorsa, temel tür kullanımı yöntemi daha geniş kullanımını etkinleştirir.

CA1012

CA1012: Soyut türlerde oluşturucular bulunmamalıdır

Soyut türler üzerindeki kurucular yalnızca türetilen türler tarafından çağrılabilir.Ortak yapıcılar türün bir örneğini yaptığından ve siz bir soyut türün örneğini yapamayacağınızdan, soyut sınıf hatalı biçimde dizayn edilmiş ortak yapıcıya sahip olur.

CA1013

CA1013: Eşittir işlecini ekleme ve çıkarmayı aşırı yükleyerek aşırı yükleyin

Bir genel ya da korumalı tür eşitlik imlecini uygulamadan ekleme ya da çıkarma işleçlerini uygular.

CA1014

CA1014: Derlemeleri CLSCompliantAttribute ile işaretleme

Ortak Dil Tanımlaması (CLS) ad kısıtlamalarını, veri türlerini ve karşıt programlama dillerini kullanırsa derlemelerin uyması zorunlu olan kuralları tanımlar.İyi tasarım bütün derlemelerin CLSCompliantAttribute kullanarak CLS ile uyumunun belirlemesidir.Bu öznitelik bir derlemede yoksa, montaj uyumlu değildir.

CA1016

CA1016: Derlemeleri AssemblyVersionAttribute ile işaretleme

Bu .NET Framework derlemeyi benzersiz tanımlamada sürüm numarasını türleri güçlü derlemelere bağlamak için kullanır.Sürüm numarası, sürüm ve yayımcı ilkesi ile birlikte kullanılır.Varsayılan olarak uygulamalar yalnızca oluşturulmuş derleme sürümlerini çalıştırır.

CA1017

CA1017: Derlemeleri ComVisibleAttribute ile işaretleme

ComVisibleAttribute COM müşterilerinin yönetilen koda nasıl erişeceğini tanımlar.İyi tasarım derlemelerin açıkça COM görünürlüğünde gösterildiğini belirler.COM görünürlüğü tüm derleme için ayarlanabilir ve sonra bireysel tür ve tür üyeleri için geçersiz kılınabilir.Bu öznitelik yoksa, derleme içeriği COM istemcileri tarafından görülebilir.

CA1018

CA1018: Öznitelikleri AttributeUsageAttribute ile işaretleyin

Özel öznitelik tanımladığınızda, AttributeUsageAttribute kullanarak özel öznitelik kaynak kodunun nerede uygulanabilir olduğunu göstermek için işaretleyin.Bir özniteliğin anlamı ve amaçlanan kullanımı, kodun içinde onun varolan konumunu tanımlar.

CA1019

CA1019: Öznitelik bağımsız değişkenleri için erişimcileri tanımlayın

Öznitelikler özniteliği işaretlediğinizde özelleştirilen zorunlu bağımsız değişkenleri tanımlayabilir.Ayrıca bunlar konum parametreleri olarak öznitelik yapıcısına verildiğinden duruma bağlı bağımsız değişkenler olarak da bilinirler.Zorunlu her bağımsız değişken için bağımsız değişkenin değeri yürütme zamanından alınması gerektiğinden öznitelik ilgili salt okunur özelliği de sağlamalıdır.Öznitelikler adlandırılmış bağımsız değişkenler olarak bilinen duruma bağlı bağımsız değişkenler olarak da tanımlanabilir.Bu bağımsız öznitelik oluşturucular ad tarafından sağlanır ve karşılık gelen bir okuma/yazma özelliğine sahip olmalıdır.

CA1020

CA1020: Birkaç türü olan ad alanlarından kaçının

Her bir ad alanının kendi mantıksal düzenlemesi vardır ve seyrek doldurulmuş bir ad alanına türleri koymak için geçerli bir nedeni olduğundan emin olun.

CA1021

CA1021: Out parametrelerinden kaçının

Başvuruya ( out veya ref kullanarak ) göre türleri geçirmek işaretçi deneyimi gerektirir, değer türü ve referans türü arasındaki farkı ve işleme yöntemi ile birden çok değer döndürmeyi anlamak gerekir.Ayrıca, out ve ref parametreleri arasındaki fark açıkça anlaşılmadı.

CA1023

CA1023: Dizin oluşturucular çok boyutlu olmamalıdır

Dizin oluşturucular (dizinlenmiş özellikleri) tek bir dizin kullanmalı.Çok boyutlu dizin oluşturucular kitaplığın kullanılabilirliğini önemli ölçüde azaltabilir.

CA1024

CA1024: Uygun yerlerde özellikler kullan

Ortak veya korumalı yöntem "Get" ile başlar, herhangi bir parametre almaz ve dizi olmayan bir değer döndüren adı vardır.Yöntem, özellik olmak için çok iyi bir aday olabilir.

CA1025

CA1025: Tekrarlanan bağımsız değişkenleri params dizisi ile değiştirin

Parametre dizisini bağımsız değişkenin gerçek sayısı bilinmediğinde ve bağımsız değişkenler aynı türde olduğunda ya da aynı tür olarak geçirilebileceğinde bağımsız değişkenleri tekrarlamak için kullanın.

CA1026

CA1026: Varsayılan parametreler kullanılmamalıdır

Varsayılan parametreleri kullanma yöntemleri CLS altında izin verilir; ancak, CLS derleyicileri bu parametreler için atanmış değerleri gözardı etmeye olanak sağlar.Programlama dilleri arasında istediğiniz davranışı korumak için varsayılan parametreleri kullanan yöntemler varsayılan parametreleri sağlayan tekrar yüklenen yöntem tarafından değiştirilmelidir.

CA1027

CA1027: Numaralandırmaları FlagsAttribute ile işaretle

Bir numaralandırma ilişkili adlandırılmış sabitler kümesini tanımlayan değer türüdür.Anlamsız olarak birleştirildiğinde numaralandırmaya FlagsAttribute özelliğini uygulayın.

CA1028

CA1028: Numaralandırma depolaması Int32 olmalıdır

Bir numaralandırma ilişkili adlandırılmış sabitler kümesini tanımlayan değer türüdür.Varsayılan olarak, System.Int32 veri türü sabit değerleri depolamak için kullanılır.Bu temel türünü değiştirebilirsiniz, ancak bu önerilen bir senaryo değildir.

CA1030

CA1030: Uygun yerlerde olaylar kullanın

Bu kural, normalde olaylar için kullanılan adlara sahip yöntemleri algılar.Yanıt olarak açıkça tanımlanmış bir durum değişikliği yöntemi çağrılırsa, olay işleyicisi tarafından yöntemin çağrılması gerekir.Yöntemi direkt olarak çağırmak yerine olayları yükselterek çağıran nesneler.

CA1031

CA1031: Genel özel durum türlerini yakalamayın

Genel özel durum yakalanmamalı.Daha özel istisnaları yakalayın ya da yakalama bloğundaki son durum olarak genel istisnaları yeniden fırlatın.

CA1032

CA1032: Standart özel durum oluşturucuları uygulayın

Yapıcıların tüm ayarlamasını sağlamaktaki başarısızlık, istisnalarla başa çıkmayı zorlaştırabilir.

CA1033

CA1033: Arabirim yöntemleri alt türler tarafından çağırılabilir olmalıdır

Ağzı açık dışarıdan görünen bir tür açık yöntem uygulaması ortak bir arabirim sağlar ve aynı ada sahip alternatif dışarıdan görünen bir yöntem sağlamaz.

CA1034

CA1034: İç içe türler görünebilir olmamalıdır

İç içe türü başka bir kapsamda bildirilen bir türdür.İç içe geçmiş türler, özel uygulama ayrıntılarını kapsayan türdeki kapsül oluşturma için kullanışlıdır.Bu amaçla kullanılan, iç içe türün dışarıdan görünür olmaması gerekir.

CA1035

CA1035: ICollection uygulamalarında türü kesin olarak belirtilmiş üyeler olmalıdır

Bu kural ICollection uygulamalarına türü kesin belirlenmiş üyeler sağlamak için gereklidir, böylece kullanıcıların arabirim tarafından sağlanan işlevselliği kullandığı zaman, bağımsız değişkenleri Nesne türüne atamaları gerekli değildir.Bu kural, Nesneden daha güçlü tür örnekleri topluluğunu yöneteceğinden türün ICollection uyguladığını varsayar.

CA1036

CA1036: Karşılaştırılabilir türlerde geçersiz kılma yöntemleri

Ortak veya korumalı tür System.IComparable arabirimini uygular.Object.Equals ne etkisiz kılınabilir ne de eşitlik için olan özel dil işleciyle aşırı yüklenebilir, eşitsizlik durumu olabilir, daha küçülebilir ya da büyüyebilir.

CA1038

CA1038: Numaralandırıcıların türü kesin olarak belirtilmelidir

Bu kural, kullanıcı arabirimi tarafından sağlanan işlevselliği kullandığınızda güçlü tür için dönen değer atama yapmak için gerekli değildir, ayrıca süregelen özelliğinin türü kesin belirlenmiş bir sürümünü sağlamak için IEnumerator uygulamaları gereklidir.

CA1039

CA1039: Listelerin türü kesin olarak belirlenmiştir

Bu kural türü kesin belirlenmiş üyeler sağlamak için IList uygulamaları gerektirir böylece kullanıcıların arabirim tarafından sağlanan işlevselliği kullandığı zaman, bağımsız değişkenleri System.Object türüne atamaları gerekli değildir.

CA1040

CA1040: Boş arabirimlerden kaçının

Arayüzler bir davranış veya kullanım sözleşmesi sağlayan üyeleri tanımlar.Arabirim tarafından tanımlanan fonksiyonellik herhangi bir tür tarafından türün kalıtım hiyerarşisinde nerede belirdiği önemsenmeksizin devralınabilir.Tür arabirimin üyeleri için uygulamaları sağlayarak bir arayüz uygular.Boş bir arabirim herhangi bir üye tanımlamıyor; bu nedenle, uygulanabilir bir sözleşme tanımlamaz.

CA1041

CA1041: ObsoleteAttribute iletisi sağlayın

Tür veya üye belirtilen kendi ObsoleteAttribute.Message özelliğine sahip olmayan bir System.ObsoleteAttribute özniteliği kullanılarak işaretlendi.Özniteliğin ileti özelliği, türü veya ObsoleteAttribute kullanılarak işaretlenmiş tür veya üye derlendiğinde görüntülenir.Bu eski türü veya üye kullanıcı bilgilerini sağlar.

CA1043

CA1043: Dizin oluşturucular için tamsayı veya dize bağımsız değişkeni kullanın

Dizinle oluşturucular (dizinlenmiş özellikleri) dizin için integral veya dize türleri kullanılmalıdır.Bu türler, genellikle veri yapılarını dizinleme için kullanılır ve bunlar kitaplığın kullanılabilirliğini artırır.Nesne türünün kullanılması için belirli bir integral veya dize türü tasarım zamanında burada tarif edilemez, bu gibi durumlarda sınırlı tutulmalıdır.

CA1044

CA1044: Özellikler salt yazılır olmamalıdır

Salt okunur özelliğe sahip olmasına karşın kabul edilebilir ve genellikle gereklidir, tasarıma ilişkin yönergeler salt yazılır özellik kullanılmasını engeller.Bir kullanıcı değeri ayarlar ve sonra kullanıcı bu değeri görüntülemeyi engellerse bunun için herhangi bir güvenlik yoktur.Ayrıca, okuma erişimi olmadan, yararsız olduklarını sınırlayan paylaşılan nesnelerin durumu görüntülenemez.

CA1045

CA1045: Türleri başvuruya göre geçirmeyin

Başvuruya ( out veya ref kullanarak ) göre türleri geçirmek işaretçi deneyimi gerektirir, değer türü ve referans türü arasındaki farkı ve işleme yöntemi ile birden çok değer döndürmeyi anlamak gerekir.Genel kitle için tasarlayan kütüphane mimarları, kullanıcılardan out ya da ref parametrelerini asıl düzeyde kullanmalarını beklememelidir.

CA1046

CA1046: Başvuru türlerinde eşittir işleçlerini aşırı yüklemeyin

Başvuru türleri için, varsayılan eşitlik işleci neredeyse her zaman doğrudur.Varsayılan olarak, yalnızca aynı nesneye gelirseniz iki başvuru eşit olur.

CA1047

CA1047: Korumalı türlerde korunan üyeleri bildirmeyin

Türler, devralmasına erişebileceğiniz veya üyeyi geçersiz kılmak için korunan üyelerin türlerini bildirir.Tanım gereği, mühürlenmiş türler devralınamaz yani mühürlenmiş türler üzerindeki korunan yöntemler çağrılamaz.

CA1048

CA1048: Korumalı türlerde sanal üyeleri bildirme

Türler yöntemi sanal olarak bildirir, böylece devralan türler sanal yöntemin uygulanmasını geçersiz kılabilir.Tanım gereği, mühürlenmiş bir tür devralınamaz.Bu, sanal yöntemi mühürlenmiş bir türde anlamsız hale getirir.

CA1049

CA1049: Yerel kaynaklara sahip olan türler atılabilir olmalıdır

Yönetilmeyen kaynakların tahsis türlerini arayanların isteğine bağlı kaynakları serbest bırakmak ve kaynakları tutan nesnelerin yaşam sürelerini kısaltmak için etkinleştirmek üzere IDisposable gerçekleştirmelisiniz.

CA1050

CA1050: Ad alanlarında türleri bildirin

Türlerin ad çakışmalarını önlemek için ad alanlarını ve ilgili türü bir nesne sıradüzeni içinde düzenlemeniz için yöntem olarak bildirilir.

CA1051

CA1051: Görünür örnek alanlarını bildirme

Bir alanın birincil kullanım alanının uygulama ayrıntısı olması gerekir.Alanların özel veya iç olması gerekir ve özelliklerini kullanmaya maruz kalması gerekir.

CA1052

CA1052: Statik tutucu türleri mühürlenmelidir

Ortak veya korumalı tür yalnızca statik üyeleri içerir ve mühürlenmiş (C# Reference) (NotInheritable) değiştirici kullanarak bildirilmez.Devralınmayacak anlamına gelen tür mühürleme değiştirici kullanılarak basit tür gibi kullanılmak için işaretlenmelidir.

CA1053

CA1053: Statik tutucu türlerinde oluşturucular bulunmamalıdır

Ortak veya iç içe geçmiş ortak tür yalnızca statik üyeleri bildirir ve ortak veya korumalı varsayılan bir oluşturucu vardır.Statik üyeleri çağırma bir tür örneği gerektirmediğinden kurucu gereksizdir.Dize aşırı yüklemesi, emniyet ve güvenlik için dize bağımsız değişkeni kullanılarak tekdüzen kaynak tanımlayıcısı (URI) çağırmalıdır.

CA1054

CA1054: URI parametreleri dizeler olmamalıdır

Bir yöntem URI'yı sunan bir dizeyi alırsa, bu hizmetleri sağlayan güvenli şekilde URI sınıfının bir örneğini alır, karşılık gelen aşırı olmalıdır.

CA1055

CA1055: URI dönüş değerleri dizeler olmamalıdır

Bu kural, yöntemin URI döndürdüğünü varsayar.Bir URI'nın dize sunumu ayrıştırma ve hataları kodlama eğilimindedir ve güvenlik açıklarına yol açabilir.System.Uri sınıfı bu hizmetleri güvenli bir şekilde sağlar.

CA1056

CA1056: URI özellikleri dizeler olmamalıdır

Bu kural, özelliğin Tekdüzen Kaynak Tanımlayıcısı (URI) tarafından temsil edildiğini varsayar.Bir URI'nın dize sunumu ayrıştırma ve hataları kodlama eğilimindedir ve güvenlik açıklarına yol açabilir.System.Uri sınıfı bu hizmetleri güvenli bir şekilde sağlar.

CA1057

CA1057: Dize URI aşırı yüklemeleri System.Uri aşırı yüklemelerini çağırır

Bir tür sadece System.Uri parametresi ile dize parametresinin değiştirilmesiyle yöntem aşırı yüklemesini bildirir.Aşırı yüklemeler URI parametresiyle aşırı yüklenmiş olan dize parametresini alır.

CA1058

CA1058: Türler belli temel türleri genişletmemelidir

Dışarıdan görünen tür belirli temel türleri genişletir.Diğer seçenekleri kullanın.

CA1059

CA1059: Üyeler belli somut türleri göstermemelidir

Somut tür tam bir uygulamaya sahiptir ve bu nedenle oluşturulabilecek bir türdür.Üye yaygın kullanımını etkinleştirmek için önerilen arabirimi kullanarak somut türünü değiştirin.

CA1060

CA1060: P/Invokes öğesini NativeMethods sınıfına taşıyın

Platform Çağırma yöntemlerini System.Runtime.InteropServices.DllImportAttribute özniteliği veya Visual Basic içinde tanımlanan Declare anahtar sözcüğü kullanılarak tanımlanan yöntemleri kullanarak işaretlenenler gibi yönetilmeyen koda erişebilirsiniz.Bu yöntemler, NativeMethods, SafeNativeMethods veya UnsafeNativeMethods sınıfının üyesi olmalıdır.

CA1061

CA1061: Taban sınıf yöntemlerini gizlemeyin

Basit türdeki bir yöntem türetilmiş türdeki adlandırılmış yöntem tarafından gizlenmiştir, türetilmiş yöntemin parametre imzası yalnızca türetilmiş türleri ve karşılık gelen temel yöntemin parametre imzası daha zayıf türlerine göre farklı olduğunda temel türde bir yöntemin türetilmiş türle aynı adlı yöntem olarak gizlidir.

CA1062

CA1062: Genel yöntemlerin bağımsız değişkenlerini doğrulayın

Dışarıdan görünen yöntemlerin null'a karşı denetlenmesi için geçirilen tüm başvuru bağımsız değişkenleri.

CA1063

CA1063: IDisposable'ı doğru uygulayın

Tüm IDisposable türleri Dispose kalıbını doğru uygulamalıdır.

CA1064

CA1064: Özel durumlar genel olmamalıdır

Bir iç özel durum yalnızca kendi iç kapsamı içinde görülebilir.İç kapsam dışında kalan özel durumlardan sonra, sadece basit istisnalar istisna yakalamak için kullanılabilir.İç özel durum T:System.Exception, T:System.SystemException veya T:System.ApplicationException devralmışsa harici kod özel durum için ne yapılacağı hakkında yeterli bilgiye sahip değildir.

CA1065

CA1065: Beklenmedik konumlarda özel durumlar harekete geçirmeyin

İstisna atılmasını beklemeyen yöntem bir istisna atar.

CA1300

CA1300: MessageBoxOptions belirtme

Doğru olarak sağdan sola okuma düzeni kullanan kültürler için bir ileti kutusu görüntülemek için Show yöntemi MessageBoxOptions numaralandırma RightAlign ve RtlReading üyeleri geçirilmelidir.

CA1301

CA1301: Yinelenen hızlandırıcılardan kaçının

Giriş anahtarı, bir hızlandırıcı olarak da bilinir, ALT anahtarını kullanarak klavye giriş denetimini sağlar.Birden çok denetimin yinelenen erişim tuşları varsa, erişim tuşunun davranışı iyi tanımlı değildir.

CA1302

CA1302: Yerel özel dizeleri doğrudan programın içine gömmeyin

System.Environment.SpecialFolder numaralandırma özel sistem klasörlerine başvuran üyeleri içerir.Bu klasörlerin konumları farklı işletim sistemleri üzerinde farklı değerlere sahip olabilir; kullanıcı konumları değiştirebilir ve konumlar yerelleştirilmiştir.Environment.GetFolderPath yöntemi yerelleştirilmiş ve o anda çalışan bilgisayara uygun Environment.SpecialFolder numaralandırma ile ilişkili olan konumları döndürür.

CA1303

CA1303: Harfleri yerelleştirilmiş parametreler olarak göndermeyin

Dışarıdan görünen yöntemi bir dize değişmez değer parametre olarak .NET Framework kütüphane sınıfında yapıcıya veya yönteme geçirir ve dize yerelleştirilebilir olmalıdır.

CA1304

CA1304: CultureInfo belirtme

Yöntem veya Oluşturucu System.Globalization.CultureInfo parametre kabul eden aşırı yüklenmiş üye arar ve yöntem veya oluşturucu CultureInfo parametresi aşırı yükleme çağıramaz.Bir CultureInfo veya System.IFormatProvider nesnesi sağlanamadığında, aşırı yüklü üye tarafından sağlanan varsayılan değer, tüm yerel ayarlarda istediğiniz etkiyi vermeyebilir.

CA1305

CA1305: IFormatProvider belirtme

Yöntem veya oluşturucu System.IFormatProvider parametresini kabul eden aşırı yüklü bir veya daha fazla üye arar ve yöntem veya oluşturucu IFormatProvider parametre yüklemesini çağırmaz.Bir System.Globalization.CultureInfo veya IFormatProvider nesnesi sağlanamadığında, aşırı yüklü üye tarafından sağlanan varsayılan değer, tüm yerel ayarlarda istediğiniz etkiyi vermeyebilir.

CA1306

CA1306: Veri türleri için yerel ayarları ayarlayın

Yerel ayarlar, veri için kültür-özel sunum öğelerini, örneğin para birimi sembolleri, sayısal değerler için biçimleri ve sıralama düzeni için kullanılan biçimlendirme gibi değerleri belirler.Bir DataTable veya DataSet oluşturduğunuzda, yerel ayarı açık olarak ayarlamanız gerekir.

CA1307

CA1307: StringComparison belirtme

StringComparison parametresi ayarlanmamış bir yöntemi aşırı bir dize karşılaştırma işleminde kullanır.

CA1308

CA1308: Dizeleri büyük harfe normalleştirin

Dizeler büyük harfe normalleştirilmeli.Küçük bir karakter grubu küçük harfe dönüştürüldüğünde gidiş dönüş yapamaz.

CA1309

CA1309: Sıralı StringComparison kullanın

StringComparison parametresini Ordinal ya da OrdinalIgnoreCase'a ayarlayamayan dilbilimsel olmayan dize karşılaştırma işlemi.Açıkça StringComparison.Ordinal veya StringComparison.OrdinalIgnoreCase için parametre ayarıyla kodunuz genellikle hızlanır, daha doğru olur ve daha güvenilir hale gelir.

CA1400

CA1400: P/Invoke giriş noktaları bulunmalıdır

Ortak veya korumalı yöntem System.Runtime.InteropServices.DllImportAttribute özniteliği kullanılarak işaretlenir.Yönetilmeyen kitaplık bulunamadı ya da yöntem için bir işlev kitaplığında eşleştirilemedi.

CA1401

CA1401: P/Invoke'lar görünür olmamalıdır

Ortak türde ortak ya da korunan yöntem System.Runtime.InteropServices.DllImportAttribute özniteliğine sahiptir (Declare anahtar kelimesiyle zaten Visual Basic içinde uygulanmıştır).Bu tür yöntemler açıkta kalmamalıdır.

CA1402

CA1402: COM görünebilir arabirimler içinde aşırı yüklemelerden kaçının

Aşırı yüklenmiş yöntemler COM istemcilerine maruz kaldığında, sadece ilk yöntem aşırı yüklemesi adını korur.Sonraki aşırı yüklemeler adının sonuna alt çizgi karakteri (_) eklenerek ve aşırı yüklemenin tanımını karşılayacak şekilde bir tam sayı eklenerek benzersiz olarak yeniden adlandırılır.

CA1403

CA1403: Otomatik yerleşim türleri COM görünebilir olmamalıdır

COM görünür bir değer türü LayoutKind.Auto için System.Runtime.InteropServices.StructLayoutAttribute özniteliği kullanılarak işaretlendi.Bu .NET Framework sürümleri arasında COM müşterilerini kesen kişisel yerleşimi bekleyen bu tür yerleşimi değiştirebilirsiniz.

CA1404

CA1404: P/Invoke ardından hemen GetLastError çağır

Marshal.GetLastWin32Error yöntemine veya eşdeğer Win32 GetLastError işlevine bir çağrı yapılır ve hemen önceki çağrı bir işletim sistemi yöntemini harekete geçirmez.

CA1405

CA1405: COM görünebilir tür taban türler COM görünebilir olmalıdır

COM görünür türü, görünmeyen bir COM türünden türer.

CA1406

CA1406: Visual Basic 6 istemcileri için Int64 bağımsız değişkenlerinden kaçının

Visual Basic 6 COM istemcileri, 64-bit tamsayıya erişemiyor.

CA1407

CA1407: COM görünebilir türler içinde statik üyelerden kaçının

COM statik yöntemleri desteklemez.

CA1408

CA1408: AutoDual ClassInterfaceType kullanma

Çift arabirim kullanan türler, belirli bir arabirim düzenine bağlanmak için istemcileri etkinleştirir.Gelecek sürümdeki değişiklikler, türün düzeni veya bazı temel türler, arayüze bağlanan COM istemcilerini kesintiye uğratır.Varsayılan olarak, ClassInterfaceAttribute özniteliği belirtilmezse, salt dağıtılan arabirim kullanılır.

CA1409

CA1409: Com görünebilir türler oluşturulabilmelidir

Özellikle COM görünür olarak işaretlenmiş bir başvuru türü, parametreli ortak kurucu içeriyorsa ancak genel varsayılan (parametresiz) bir oluşturucuya sahip değildir.Genel varsayılan oluşturucu olmadan tür COM istemcileri tarafından oluşturulmamalıdır.

CA1410

CA1410: COM kayıt yöntemleri eşleşmelidir

System.Runtime.InteropServices.ComRegisterFunctionAttribute özniteliğini kullanarak işaretlenmiş yöntem bir tür bildirir ancak System.Runtime.InteropServices.ComUnregisterFunctionAttribute özniteliğini kullanarak veya tersi durumda işaretlenmiş bir yöntemi bildirmez.

CA1411

CA1411: COM kayıt yöntemleri görünebilir olmamalıdır

System.Runtime.InteropServices.ComRegisterFunctionAttribute özniteliğini veya System.Runtime.InteropServices.ComUnregisterFunctionAttribute özniteliğini kullanarak işaretlenmiş bir yöntemi dışarıdan görülebilir.

CA1412

CA1412: ComSource Arabirimlerini IDispatch olarak işaretleyin

System.Runtime.InteropServices.ComSourceInterfacesAttribute özniteliğini kullanarak işaretlenen bir tür ve belirtilen arabirimlerden birini ayarlamak için ComInterfaceType.InterfaceIsIDispatch özniteliğine System.Runtime.InteropServices.InterfaceTypeAttribute özniteliğini kullanarak ayarlanır.

CA1413

CA1413: COM görünebilir değer türleri içinde genel olmayan alanlardan kaçının

COM-görünür değer türlerinin ortak olmayan örnek alanları COM istemcilerine görünürdür.Maruz kalmaması gereken, istenmeyen bir tasarım ya da güvenlik etkileri olan bilgi alanındaki içeriği gözden geçirin.

CA1414

CA1414: Boolean P/Invoke bağımsız değişkenlerini MarshalAs ile işaretleyin

Boolean veri türünün, yönetimsiz kod içinde birden fazla sunumu vardır.

CA1415

CA1415: P/Invoke'ları doğru bildirin

Bu kural, ÇAKIŞAN yapı parametresine işaret eden ve yönetilen koda uyan System.Threading.NativeOverlapped yapısına işaret etmeyen Win32 hedef işlevindeki işletim sistemi çağrı yöntemi bildirimlerine bakar.

CA1500

CA1500: Değişken adları alan adlarıyla eşleşmemelidir

Bir örnek yöntemi, hatalara liderlik eden derlenen türdeki örnek alanı içinde adları uyuşan bir parametre yada yerel değişken tanımlar.

CA1501

CA1501: Aşırı devralmadan kaçın

Devralma hiyerarşisinde düzeyleri dörtten fazla olan türdür.İç içe yuvalanmış hiyerarşileri izlemek, anlamak ve muhafaza etmek zor olabilir.

CA1502

CA1502: Aşırı karmaşıklıktan kaçının

Bu kural, sayılarla ve şartlı şubelerle tanımlanan, yönteme giden doğrusal bağımsız yolların sayısını ölçer.

CA1504

CA1504: Yanlış alan adlarını gözden geçirin

Örnek alan adı "s_" ya da statik (Visual Basic içinde paylaşılan) "m_" ile başlar.

CA1505

CA1505: Bakımı yapılamayan kodlardan kaçının

Bir tür veya yöntemin düşük bakım dizin değeri vardır.Düşük bakım dizini muhtemelen koruması zor olan ve yeniden tasarım için iyi bir aday olan tür veya yöntemi içerir.

CA1506

CA1506: Aşırı sınıf bağlantısından kaçın

Bu kural türü veya yöntemini içeren benzersiz türde başvuru sayısı belirlenerek eşlenmesiyle sınıfı ölçer.

CA1600

CA1600: Boş işlem önceliğini kullanmayın

İşlem önceliğini Boşta olarak ayarlamayın.Aksi durumda boş olacak ve bu nedenle beklemeyi engeller, System.Diagnostics.ProcessPriorityClass.Idle bulunan işlemleri CPU dolduracaktır.

CA1601

CA1601: Güç durumu değişikliklerini önleyen zamanlayıcılar kullanmayın

Yüksek frekanslı dönemsel faaliyet CPU'yu meşgul tutar ve sabit diski gösteren güç tasarruflu zamanlayıcılarla müdahale edilir.

CA1700

CA1700: Numaralandırma değerlerini 'Ayrılmış' olarak adlandırmayın

Bu kural, "ayrılmış" içeren bir ada sahip numaralandırma üyesi şu anda kullanılmamaktadır ancak yeniden adlandırılabilir veya gelecekteki bir sürüme kaldırıldığını varsayar.Üye kaldırma veya yeniden adlandırma bölünmesi farklıdır.

CA1701

CA1701: Kaynak dize bileşik sözcüklerinin küçük/büyük harfleri doğru yazılmalıdır

Kaynak dizedeki her sözcüğün büyük/küçük harf kurralarına dayanan belirteçler içinde bölünür.Her bir bitişik ikili-işaret kombinasyonu Microsoft yazım kitaplığı tarafından denetlenir.Tanınırsa, kelime kural ihlali üretir.

CA1702

CA1702: Bileşik sözcüklerin küçük/büyük harfleri doğru yazılmalıdır

Tanımlayıcının adı birden çok sözcük içerir ve bu sözcüklerden en az biri büyük harf kullanımı hatasına maruz kalmış birleşik kelime olarak görülür.

CA1703

CA1703: Kaynak dizeler doğru yazılmalıdır

Kaynak dizesi, Microsoft Yazım kitaplığı tarafından tanınmayan bir veya birkaç sözcük içerir.

CA1704

CA1704: Tanımlayıcılar doğru yazılmalıdır

Dışarıdan görünen bir tanımlayıcı ad Microsoft yazım denetimi kitaplığı tarafından tanınmayan bir veya birkaç sözcük içerir.

CA1707

CA1707: Tanımlayıcılar alt çizgi içermemelidir

Kural gereği, tanımlayıcı adlar alt çizgi (_) karakterini içermez.Bu kural ad alanlarını, türleri, üyeleri ve parametreleri denetler.

CA1708

CA1708: Tanımlayıcılar örnekten daha fazla farklı olmalıdır

Ortak dil çalışma zamanı hedef dilleri büyük/küçük harf duyarlı olması gerekmediğinden ad alanları, türler, üyeler ve parametreler için tanımlayıcılar yalnızca büyük/küçük harfe göre farklılık göstermeyebilir.

CA1709

CA1709: Tanımlayıcıların büyük/küçük harfleri doğru yazılmalıdır

Kural gereği, parametre adları camel casing ve ad, tür ve üye adları Pascal casing kullanır.

CA1710

CA1710: Tanımlayıcıların sonekleri doğru olmalıdır

Kural gereği, belli uzatılan türlerin adları ya da belli arayüzlerin uygulanması, ya da bu türlerden türetilen, basit tür veya arayüzden oluşturulan son eke sahiptir.

CA1711

CA1711: Tanımlayıcıların sonekleri yanlış olmamalıdır

Kural gereği, yalnızca, belirli temel türleri genişleten veya bazı arabirimleri ya da bu türlerinden türetilmiş türleri uygulayan tür adları belirli ayrılmış öneklerle bitmelidir.Diğer tür adları aşağıdaki ayrılmış sonekleri kullanmamalı.

CA1712

CA1712: Numaralandırma değerleri için tür adıyla önek kullanmayın

Numaralandırma üyelerinin adları, tür adı kullanılarak öneklenmemiştir, çünkü geliştirici araçlarının tür bilgisini sağlaması beklenmez.

CA1713

CA1713: Olaylarda önce veya sonra önek olmamalıdır

Olay adı "Önce" veya "Sonra" ile başlar.Belirli bir sırayla ilgili olayları adlandırmak için şimdiki veya geçmiş zamanı göreceli konumun sıralı eylemlerini belirtmek için kullanın.

CA1714

CA1714: Bayrak numaralandırmalarında çoğul adlar olmalıdır

Ortak bir numaralandırma System.FlagsAttribute özniteliğine sahiptir ve adı "s" ile bitmez.Bileşik FlagsAttribute kullanarak işaretlenen öznitelik birden fazla değer belirtilebilir, çünkü çoğul adları vardır.

CA1715

CA1715: Tanımlayıcıların önekleri doğru olmalıdır

Dışarıdan görünen bir arabirimin adı büyük "I" ile başlamıyor.Genel tür parametresi dışarıdan görünen tür veya yöntem adı büyük "T" ile başlamıyor.

CA1716

CA1716: Tanımlayıcılar anahtar sözcüklerle eşleşmemelidir

Ad alanı adı veya tür adı ayrılmış anahtar sözcük bir programlama dili ile eşleşir.Tanımlayıcı adı ve türleri için ortak dil çalışma zamanı, hedef diller tarafından tanımlanan anahtar sözcüklerle aynı değildir.

CA1717

CA1717: Yalnızca FlagsAttribute numaralandırmalarında çoğul adlar olmalıdır

Adlandırma kuralları numaralandırma için adlandırma aynı anda birden fazla numaralandırma değeri olduğunu gösterir.

CA1719

CA1719: Parametre adları üye adlarıyla eşleşmemelidir

Parametre adı parametrenin anlamıyla iletişim kurmalı ve üyenin adını üye anlamıyla iliştirmelidir.Bunların aynı olduğu yerlerde nadir bir tasarım olur.Aynı üye adıyla parametreyi adlandırma sezgisel değildir ve kütüphane kullanımını zorlaştırır.

CA1720

CA1720: Tanımlayıcılar tür adları içermemelidir

Parametre adı dışarıdan görünen üye, veri türü adını içerir ya da açıkça görünen üyenin adı dil özellikli veri türü adı içerir.

CA1721

CA1721: Tür adları alma yöntemleriyle eşleşmemelidir

Ortak veya korumalı bir üye adı "Get" ile başlar ve aksi durumda ortak veya korumalı özellik adıyla eşleşir. "Get" yöntemlerinin ve özelliklerinin açıkça işlevlerinden ayırt edilebilen adları olması gerekir.

CA1722

CA1722: Tanımlayıcıların önekleri yanlış olmamalıdır

Kural gereği, programlama öğelerinin belirli bir önek ile başlayan adları vardır.

CA1724

CA1724: Tür Adları Ad Alanlarıyla Eşleşmemelidir

Bu .NET Framework sınıf kütüphanesi içindeki tür adları içinde tanımlı ad alanlarının adlarıyla eşleşmiyor.Bu kuralın ihlali kitaplığın kullanılabilirliğini azaltabilir.

CA1725

CA1725: Parametre adları taban yöntem ile eşleşmelidir

Parametreyi geçersiz kılma hiyerarşisinde tutarlı adlandırma yöntemini geçersiz kılmaları kullanılabilirliği artırır.Temel bildirim alanındaki addan farklı türetilmiş yöntem parametre adı taban yöntemini geçersiz kılma veya yeni aşırı yöntemin yöntem olup olmadığı hakkında karışıklığa neden olabilir.

CA1726

CA1726: Tercih edilen terimleri kullanın

Dışarıdan görünen bir tanımlayıcının adı, tercih edilen terim varolduğunda alternatif olarak bir terim içerir.Alternatif olarak ad, "Bayrak" veya "Bayraklar" terimini içerir.

CA1800

CA1800: Gereksiz atamalar yapmayın

Özellikle yayınlar sıkıştırılmış yineleme deyiminde gerçekleştirildiğinde yinelenen yayınların performansını azaltır.

CA1801

CA1801: Kullanılmayan parametreleri gözden geçir

Yöntem imzası, yöntemin gövdesinde kullanılmayan bir parametre içerir.

CA1802

CA1802: Uygun Yerlerde Sabitleri Kullan

Statik ve salt okunur bir alana bildirilen alan (Visual Basic içinde Paylaşılan ve Salt Okunur) ve derleme zamanında hesaplanabilen bir değer kullanılarak başlatılır.Hedeflenen alana atanan değer derleme zamanında hesaplanabilir olduğundan dolayı ( Visual Basiciçinde Sabit) alanın tanımını değiştirip değerin çalışma zamanında hesaplanması yerine derleme zamanı sırasında hesaplanmasını sağlayın.

CA1804

CA1804: Kullanılmayan yerel öğeleri kaldırın

Kullanılmayan yerel değişkenler ve gereksiz atamaların derleme boyutunu artırır ve performansı düşürür.

CA1806

CA1806: Yöntem sonuçlarını yoksaymayın

Yeni bir nesne oluşturulur, ancak hiç kullanılmaz veya çağrılan yeni dizeyi oluşturur ve döndürür ve yeni dize hiç kullanılmaz ya da COM veya P/Invoke yöntemi, bir HRESULT ya da hiç kullanılmayan hata kodu döndürür.

CA1809

CA1809: Aşırı yerel öğelerden kaçın

Bir değeri bellek yerine işlemci yazmacında tutmak yaygın bir performans iyileştirmesidir ve buna "değeri kaydetmek denir".Tüm yerel değişkenlerin kaydedilme imkanına sahip olabilmesi şansını artırmak için yerel değişken sayısını 64 ile sınırlayın.

CA1810

CA1810: Başvuru türü statik alanları satır içi başlatın

Bir tür açık statik yapıcı bildirdiğinde, JIT derleyici her bir statik yöntemi kontrol ekler ve türün yapıcı örneği statik yapıcının daha önceden çağrıldığından emin olur.Statik oluşturucu denetimleri performansı düşürebilir.

CA1811

CA1811: Çağrılmayan özel kodlardan kaçının

Özel ya da iç (derleme düzeyi) üye arayanların derlemede çağırıcısı yoktur; ortak dil çalışma zamanı tarafından çağrılan değildir ve temsilci tarafından çağrılan da değildir.

CA1812

CA1812: Örneklendirilmemiş iç sınıflardan kaçının

Bir derleme düzeyi türünün örneği, derleme içindeki kod tarafından oluşturulmaz.

CA1813

CA1813: Korumasız özniteliklerden kaçının

Bu .NET Framework sınıf kütüphanesi özel öznitelikleri almak için yöntem sağlar.Varsayılan olarak, bu yöntemleri öznitelik devralma hiyerarşisinde arar.Öznitelik mühürleme kalıtım hiyerarşisi aracılığıyla aramayı ortadan kaldırır ve performansı artırabilir.

CA1814

CA1814: Basit dizileri çok boyutlu dizilere tercih edin

Basit bir dizi, öğeleri dizi olan bir dizidir.Öğeleri olan diziler bazı veri kümeler için daha az harcanmış önde gelen farklı boyutlarda olabilir.

CA1815

CA1815: Değer türlerinde eşittir ve işleç eşitliklerinin üzerine yaz

Değer türleri için, Equals'ın devralınmış uygulaması Reflection kitaplığını kullanır ve türdeki tüm alanların içeriğini karşılaştırır.Yansıma hesaplama açısından pahalıdır ve her alan için eşitlik karşılaştırma gereksiz olabilir.Kullanıcıları karşılaştırmak veya örneklerini sıralamak ya da tablo anahtarlarını karma olarak kullanmayı bekliyorsanız, değer türünüz Equals'ı uygulamalıdır.

CA1816

CA1816: GC.SuppressFinalize öğesini doğru çağırın

Dispose uygulamasını çağırmayan yöntem GC.SuppressFinalize'ı çağırmaz; ya da Dispose çağrılarında GC.SuppressFinalize uygulamayan yöntem; ya da GC.SuppressFinalize'ı çağıran yöntem ve bundan başka şeyleri geçen yöntemdir (Visual Basic'te Me).

CA1819

CA1819: Özellikler diziler döndürmemelidir

Özellik salt okunur olsa bile özellikleri tarafından döndürülen dizi yazma korumalı değildir.Dizi değiştirilmeye kanıt tutulacak özellik dizisinin bir kopyasını döndürmelidir.Tipik olarak, kullanıcılar bu tür bir özellik aramanın performans üzerindeki olumsuz etkilerini anlamayacaktır.

CA1820

CA1820: Dize uzunluğunu kullanarak boş dizeler için sınayın

String.Length özelliği veya String.IsNullOrEmpty yöntemi, Equals kullanılmasından önemli ölçüde daha hızlıdır.

CA1821

CA1821: Boş sonlandırıcıları kaldırın

Güncelleştirirken, nesne kullanım süresini izleme söz konusu olduğunda ek performans yükü nedeniyle sonlandırıcılardan kaçının.Boş sonlandırıcı eklenen yükü çeker ve hiçbir avantaj sunmaz.

CA1822

CA1822: Üyeleri statik olarak işaretleyin

Örnek veri veya çağrı örnek yöntemlerinin erişmeyen üyeleri statik olarak işaretlenir ( Visual Basiciçinde paylaşılmıştır ).Yöntemleri statik olarak işaretledikten sonra, derleyici sanal olmayan arama sitelerini bu üyelere yayar.Bu, ölçülebilir kazanç performansını performans duyarlı kodunuz için verebilir.

CA1823

CA1823: Kullanılmayan özel alanlardan kaçının

Derlemede erişimi görülmeyen özel alanlar algılandı.

CA1824

CA1824: Derlemeleri NeutralResourcesLanguageAttribute ile işaretleme

NeutralResourcesLanguage özniteliği bir derlemenin bağımsız kültürünün kaynağını görüntüleyen dilin Kaynak Yöneticisi'ni bilgilendirir.Bu ilk yüklediğiniz kaynak için arama performansını artırır ve çalışma kümenizi azaltabilir.

CA1900

CA1900: Değer tür alanları taşınabilir olmalıdır

Bu kural açık düzene bildirilen yapıları kullanarak 64-bit işletim sistemlerinde yönetilmeyen kod sıralandığı zaman doğru olarak hizalamayı denetler.

CA1901

CA1901: P/Invoke bildirimleri taşınabilir olmalıdır

Bu kural her parametresinin boyutu ve P/Invoke dönüş değeri olarak değerlendirilir ve parametrenin boyutu 32-bit ve 64-bit işletim sistemlerinde yönetilmeyen kodun başvuruya doğru olduğunu doğrular.

CA1903

CA1903: Yalnızca hedeflenen çerçeveden API kullanın

Bir üye veya tür, bir üye veya projedeki hedeflenen çerçeve ile birlikte dahil edilmemiş hizmet paketinde tanıtılmış türü kullanır.

CA2000

CA2000: Kapsamı kaybetmeden önce verileri atın

Bir nesnenin sonlandırıcısının çalışmasını engelleyecek olağanüstü bir durum gerçekleşebileceği için, nesne ona olan tüm başvurular kapsam dışına çıkmadan açıkça atılmalıdır.

CA2001

CA2001: Sorunlu yöntemleri çağırmaktan kaçının

Bir üye olası tehlikeli ya da sorunlu yöntemi çağırır.

CA2002

CA2002: Zayıf kimliği olan nesneleri kilitlemeyin

Bir nesneye uygulama etki alanları arasından erişilebiliyorsa o nesnenin zayıf bir kimliğe sahip olduğu söylenir.Zayıf kimliğe sahip bir nesne üzerinde kilit almayı deneyen iş parçacığı aynı nesne üzerinde bir kilide sahip olan farklı uygulama etki alanı içindeki ikinci iş parçacığı tarafından engellenebilir.

CA2003

CA2003: Lifleri iş parçacığı olarak görmeyin

Yönetilen bir iş parçacığı Win32 iş parçacığı olarak işlenir.

CA2004

CA2004: GC.KeepAlive'a çağrıları kaldırın

SafeHandle kullanımını dönüştürüyorsanız, tüm GC.KeepAlive (nesne) çağrılarını kaldırın.Bu durumda, sınıflar GC.KeepAlive'a çağrı yapmamalıdır.Bu, onların bir sonlandırıcısı olmadığını kabul eder, ancak SafeHandle'ı işletim sistemini sonlandırmasına güvenin.

CA2006

CA2006: Yerel kaynakları kapsamak için SafeHandle kullanın

Yönetilen kod içinde IntPtr kullanmak olası bir güvenlik ve güvenilirlik sorunu belirtebilir.IntPtr'nin tüm kullanımları onun yerine bir SafeHandle ya da benzer bir teknolojinin kullanımının gerekip gerekmediğini belirlemek için gözden geçirilmelidir.

CA2100

CA2100: SQL sorgularını güvenlik açıkları için inceleyin

Bir yöntem, yönteme dize değişkeninden oluşturulmuş dize kullanarak System.Data.IDbCommand.CommandText özelliğini ayarlar.Bu kural, dize değişkeninin kullanıcı girişi içerdiğini varsayar.Kullanıcı girişi ile oluşturulan SQL komut dizesi, SQL enjeksiyon saldırılarına karşı savunmasız durumdadır.

CA2101

CA2101: P/Invoke dize bağımsız değişkenleri için sıralama belirtin

Bir platform çağırma üyesi kısmen güvenilen arayanlara izin verir, bir dize parametresine sahiptir ve dize açıkça sıralanmaz.Bu, olası bir güvenlik açığına neden olabilir.

CA2102

CA2102: CLSCompliant olmayan özel durumları genel işleyiciler içinde yakalayın

RuntimeCompabilityAttribute tarafından işaretlenmemiş veya RuntimeCompability (WrapNonExceptionThrows = yanlış) ile işaretlenmiş derlemedeki bir üye, System.Exception işleyen yakalama bloğu içerir ve hemen arkasından gelen genel bir yakalama bloğu içermez.

CA2103

CA2103: Kesinlik temelli güvenliği gözden geçirin

Bir yöntem zorunlu güvenliği kullanır ve durum bilgileri veya dönüş değerlerini kullanarak izin oluşturursa, izin talebi etkin durumdayken değişebilir.Bildirime dayanan güvenliği mümkün olduğunca kullanın.

CA2104

CA2104: Salt okunur kesilebilir başvuru türleri bildirmeyin

Dışarıdan görünen bir tür, kesilebilir başvuru türü olan dışarıdan görünen bir salt okunur alan içerir.Kesilebilir tür, örnek verileri değiştirilebilen bir türdür.

CA2105

CA2105: Dizi alanları salt okunur olmamalıdır

Bir dizi içeren değiştiriciyi salt okunur alan kabul ettiğinizde (salt okunur Visual Basic), başvuru farklı bir diziyi değiştiremez.Bir dizinin öğeleri salt okunur bir alanda depolanmış olsa bile değiştirilebilir.

CA2106

CA2106: Bildirimlerin güvenliğini sağlayın

Bir yöntem izin ileri sürer ve güvenlik önlemi olmayan çağrı üzerinde gerçekleşir.Güvenlik denetimleri yapmadan herhangi bir güvenlik izni ileri sürmek, kodunuzdaki güvenlik zayıflıklarını yararlanılabilir bırakır.

CA2107

CA2107: Gözden geçirmeyi reddet ve yalnızca kullanımına izin ver

PermitOnly yöntemi ve CodeAccessPermission.Deny güvenlik eylemleri yalnızca .NET Framework güvenliği hakkında yeterli bilgiye sahip olanlar tarafından kullanılmalıdır.Bu güvenlik eylemlerini kullanan kod güvenlik incelemesi altından geçmelidir.

CA2108

CA2108: Değer türleri üzerinde bildirimsel güvenliği gözden geçirin

Ortak veya korunan değer türü, Veri Erişim veya Bağlantı Talepleri tarafından güvenlik altına alınır.

CA2109

CA2109: Görünen olay işleyicileri gözden geçirin

Ortak veya korunan olay işleme yöntemi algılandı.Olay işleme yöntemleri kesinlikle gerekli olmadığı sürece maruz bırakılmamalıdır.

CA2111

CA2111: İşaretçiler görünür olmamalıdır

İşaretçi özel, içsel veya salt okunur değildir.Kötü amaçlı kod işaretçinin değerini değiştirebilir, potansiyel olarak bellekte rastgele konumlara erişme izni verebilir veya uygulama ya da sistem hatalarına neden olabilir.

CA2112

CA2112: Güvenli türler alanları açığa çıkarmamalıdır

Ortak veya korumalı tür, ortak alanları içerir ve Bağlantı Talepleri tarafından güvenlik altına alınır.Bağlantı talebi tarafından güvenli türde bir örnek kod erişimi varsa, kod türün alanlarına erişmek için bağlantı talebine sahip değildir.

CA2114

CA2114: Yöntem güvenliği türün bir üst kümesi olmalıdır

Yöntem, aynı eylem için hem yöntem düzeyine hem de tür düzeyine dayanan güvenliğe sahip olmamalıdır.

CA2115

CA2115: Yerel kaynaklar kullanırken GC.KeepAlive'ı çağırın

Bu kural, yönetimsiz kod içinde kullanıldığı sırada yönetilmeyen kaynağın sonlandırılması nedeniyle oluşabilecek hataları algılar.

CA2116

CA2116Ç APTCA yöntemleri yalnızca APTCA yöntemlerini çağırmalıdır

APTCA (AllowPartiallyTrustedCallersAttribute) özniteliği tam olarak güvenilen bir derlemede yapılandırıldığında ve derleme, kodu kısmen güvenilmeyen çağrıcılara izin vermeyen başka bir derlemede çalıştırdığında, güvenlik yararlanması mümkündür.

CA2117

CA2117: APTCA türleri yalnızca APTCA taban türlerini genişletmelidir

APTCA (AllowPartiallyTrustedCallers) özniteliği, tam olarak güvenilen bir derleme üzerinde temsil edildiğinde ve derlemedeki tür, kısmen güvenilmeyen bir çağırıcıya izin vermeyen tür tarafından devralındığında, güvenlik yararlanması mümkündür.

CA2118

CA2118: SuppressUnmanagedCodeSecurityAttribute kullanımını gözden geçir

SuppressUnmanagedCodeSecurityAttribute, varsayılan davranışı COM birlikte çalışma veya işletim sistemi davranışını kullanan yönetilmeyen kodu çalıştıran üyeler için değiştirir.Bu öznitelik, öncelikle performansı artırmak için kullanılır; ancak, gelen performans artışı önemli güvenlik riskleri ile birlikte gelir.

CA2119

CA2119: Özel arabirimleri karşılayan yöntemleri mühürleyin

Devralınabilir bir ortak tür, içsel ( Visual Basic'de Arkadaş) arabirimin geçersiz yöntem uygulamasını sağlar.Bu kuralın ihlalini düzeltmek için yöntemin, derlemenin dışından geçersiz kılınmasını önleyin.

CA2120

CA2120: Serileştirme oluşturucularının güvenliğini sağlayın

Bu türün, System.Runtime.Serialization.SerializationInfo nesnesi ve System.Runtime.Serialization.StreamingContext nesnesi (seri hale getiren yapıcı imzası) alan bir oluşturucusu vardır.Bu oluşturucu, güvenlik denetimi tarafından güvenli değildir; ancak türdeki en az bir normal oluşturucu güvenlidir.

CA2121

CA2121: Statik oluşturucular özel olmalıdır

Sistem, türünün ilk örneğinin oluşturulmasından önce statik oluşturucuyu çağırır veya herhangi bir statik üyeye başvurur.Statik oluşturucu özel değilse, sistem dışındaki kod tarafından çağrılabilir.Oluşturucu içinde gerçekleştirilen işlemlere bağlı olarak bu, beklenmeyen davranışlara neden olabilir.

CA2122

CA2122: Bağlantı talepleri olan yöntemleri dolaylı olarak açığa çıkarmayın

Ortak veya korumalı bir üye, Bağlantı Taleplerine sahiptir ve herhangi bir güvenlik denetimi gerçekleştirmeyen üye tarafından çağrılır.Bağlantı talebi, yalnızca o anki çağırıcı izinlerini denetler.

CA2123

CA2123: Geçersiz kılan bağlantı talepleri taban ile özdeş olmalıdır

Bu kural, arabirim ya da başka bir türdeki sanal yöntem olan temel yöntem ile başka bir yöntemi eşleştirir ve sonra her bir bağlantı talebini inceler.Bu kural ihlal edilirse kötü niyetli arayan, sadece güvensiz bir yöntem çağırarak bağlantı isteğini atlayabilir.

CA2124

CA2124: Savunmasız sonunda yan tümcelerini dış deneme içine sarmalayın

Ortak veya korumalı bir yöntem try/finally bloğunu içerir.Finally bloğu, güvenlik durumunu sıfırlamak için görünür ve finally bloğuna dahil değildir.

CA2126

CA2126: Tür bağlantı talepleri devralma taleplerini gerektirir

Ortak sonuçlandırılmamış bir tür, bağlantı isteği ile korunmalıdır ve geçersiz kılınabilir bir yöntemi vardır.Ne tür, ne de yöntem miras talebi kullanılarak korunmaktadır.

CA2127

CA2136: Üyeler çakışan saydamlık ek açıklamalarına sahip olmamalıdır

Kritik kod, %100 saydam bir derlemede oluşamaz.Bu kural, tür, alan ve yöntem düzeylerinde herhangi SecurityCritical açıklamaları için %100 saydam derlemeleri inceler.

CA2128

CA2147: Saydam türler güvenlik bildirimlerini kullanmamalıdır

Bu kural, tüm yöntemleri ve %100 saydam veya saydam/kritik karma derlemelerdeki türleri analiz eder ve onayların bildirimsel veya zorunlu kullanımlarını işaretler.

CA2129

CA2140: Saydam kod güvenlik kritik nesnelerine başvurmamalıdır

SecurityTransparentAttribute ile işaretlenmiş yöntemler, SecurityCritical olarak işaretlenmiş ortak olmayan üyeleri çağırır.Bu kural, saydam/kritik karma derlemedeki tüm yöntemler ve türleri inceler ve SecurityTreatAsSafe olarak işaretlenmemiş ortak olmayan kritik saydam koddaki çağrıları işaretler.

CA2130

CA2130: Güvenlik kritik sabitleri saydam olmalıdır

Saydamlık zorlaması, sabit değerler için zorlanmaz çünkü derleyiciler sabit değerleri satır içi hale getirir bu nedenle arama, çalışma zamanında gerekli değildir.Sabit alanlar saydam güvenlikli olmalıdır; böylece kodu gözden geçirenler saydam kodun sabitlere erişemediğini varsaymaz.

CA2131

CA2131: Güvenlik kritik türleri tür eşdeğerliğine katılamaz

Bir tür, türün eşdeğerliğine ve türün kendisine veya üyeye veya türün alanına katılır, SecurityCriticalAttribute özniteliği kullanılarak işaretlenir.Bu kural, herhangi kritik türler veya kritik yöntemleri içeren türler veya tür eşdeğerliğine katılan alanlar tetiklendiğinde olur.CLR böyle bir türü algıladığında, çalışma zamanında TypeLoadException ile yüklemek başarısız olur.Genellikle, bu kural yalnızca kullanıcılar içinde el ile veya türü eşdeğerlik tlbimp ve derleyiciler türü eşdeğerlik yapmak için güvenmek zorunda uyguladığınızda oluşturulur.

CA2132

CA2132: Varsayılan oluşturucular en az taban tür varsayılan oluşturucular kadar kritik olmalıdır

SecurityCriticalAttribute koduna sahip türler ve üyeler Silverlight uygulama kodu tarafından kullanılamaz.Kritik güvenlik türleri ve üyeleri, yalnızca Silverlight sınıf kütüphanesi için .NET Framework içindeki güvenilen kod tarafından kullanılabilir.Türetilmiş sınıftaki ortak veya korumalı oluşturma, onun temel sınıfından aynı düzeyde veya daha saydam olması gerektiğinden uygulama içindeki sınıf SecurityCritical işaretlenmiş bir sınıftan türeyemez.

CA2133

CA2133: Temsilciler tutarlı saydamlığı olan yöntemlere bağlanmalıdır

Bu uyarı SecurityCriticalAttribute saydam veya SecuritySafeCriticalAttribute kullanılarak işaretlenmiş bir yöntem kullanılarak işaretlenmiş temsilci bağlayan bir yöntemi ortaya çıkar.Uyarı, saydam veya kritik bir yöntem için kritik derecede güvenli temsilciyi bağlayan yöntemi de tetikler.

CA2134

CA2134: Yöntemler taban yöntemleri geçersiz kılarken tutarlı saydamlığı tutmalıdır

Bu kural yöntem saydam olan SecurityCriticalAttribute etkisiz kılma kullanılarak işaretlendiğinde veya SecuritySafeCriticalAttribute işaretlenmesi kullanıldığında oluşturulur.Bu kural saydam yöntem olan SecurityCriticalAttribute etkisiz kılma kullanılarak işaretlendiğinde veya SecuritySafeCriticalAttribute işaretlenmesi kullanıldığında oluşturulur.Bu kural, sanal bir yöntemi geçersiz kılarken veya bir arabirim uygulanırken uygulanır.

CA2135

CA2135: Düzey 2 derlemeler LinkDemands içermemelidir

LinkDemands, düzey 2 güvenlik kural kümesinden kaldırılmıştır.Tam zamanlı (JIT) derleme zamanında güvenliği zorlayan LinkDemands'ı kullanmak yerine; yöntemleri, türleri ve SecurityCriticalAttribute özniteliğine sahip alanları işaretleyin.

CA2136

CA2136: Üyeler çakışan saydamlık ek açıklamalarına sahip olmamalıdır

Saydamlık nitelikleri, geniş kapsam kodlu öğelerden daha küçük kapsamlı öğelere uygulanır.Geniş kapsamı ile kod öğelerinin saydamlık özniteliklerini ilk öğeden kapsayan kod öğelerinin saydam öznitelikleri önceliklidir.Örneğin; SecurityCriticalAttribute özniteliğiyle işaretlenmiş bir sınıf, SecuritySafeCriticalAttribute özniteliği kullanılarak işaretlenmiş bir yöntemi içeremez.

CA2137

CA2137: Saydam yöntemler yalnızca doğrulanabilir IL içermelidir

Bir yöntem, doğrulanamayan kodu içerir veya başvuruya göre bir tür döndürür.Bu kural, doğrulanamayan microsoft ara dili (MISL) yürütmek için güvenlik saydam kodu tarafından girişimleri tetikler.Ancak kural tam IL doğrulayıcısı içermez ve MSIL doğrulamasının çoğu ihlalini yakalamak için buluşsal yöntemler kullanır.

CA2138

CA2138: Saydam yöntemler SuppressUnmanagedCodeSecurity özniteliğine sahip yöntemleri çağırmamalıdır

Saydam bir güvenlik yöntemi, SuppressUnmanagedCodeSecurityAttribute özniteliği kullanılarak işaretlenmiş bir yöntemi çağırır.

CA2139

CA2139: Saydam yöntemler HandleProcessCorruptingExceptions özniteliğini kullanamaz

Bu kural, saydam herhangi bir yöntemi ve HandleProcessCorruptedStateExceptionsAttribute özniteliği kullanarak işlem bozucu özel durumun yakalanması için deneme yapılmasını tetikler.Özel durumu bozan bu işlem, AccessViolationException gibi özel durumların CLR 4.0 sürümü özel durum sınıflandırılmasıdır.HandleProcessCorruptedStateExceptionsAttribute özniteliği, sadece kritik güvenlik yöntemleri tarafından kullanılır ve saydam bir yöntem uygulanırsa yoksayılır.

CA2140

CA2140: Saydam kod güvenlik kritik nesnelerine başvurmamalıdır

SecurityCriticalAttribute özniteliğiyle işaretlenmiş bir kod, kritik güvenliktedir.Saydam bir yöntem, kritik güvenlik öğesini kullanamaz.Saydam bir tür kritik güvenlik türünü kullanmayı denerse; TypeAccessException, MethodAccessException veya FieldAccessException ortaya çıkar.

CA2141

CA2141:Transparent yöntemleri LinkDemands'i karşılamamalıdır

Saydam güvenlik yöntemi, bir derlemede APTCA özniteliğiyle işaretlenmiş olan yöntemi çağırır veya saydam bir güvenlik yöntemi, tür ya da yöntem için LinkDemand karşılar.

CA2142

CA2142: Saydam kod LinkDemands ile korunmamalıdır

Bu kural, bunlara erişmek için LinkDemands gerektiren saydam yöntemler üzerinde oluşturulur.Saydam güvenlik kodu, bir işlemin güvenlik doğrulaması için sorumlu olmamalıdır ve bu nedenle izin talep edilmemelidir.

CA2143

CA2143: Saydam yöntemler güvenlik taleplerini kullanmamalıdır

Saydam güvenlik kodu, bir işlemin güvenlik doğrulaması için sorumlu olmamalıdır ve bu nedenle izin talep edilmemelidir.Saydam güvenlik kodu, güvenlik kararını vermek için tüm talepleri kullanmalıdır ve güvenli kritik kod, saydam koda tüm talepleri vermek için güvenmemelidir.

CA2144

CA2144: Saydam kod derlemeleri bayt dizilerinden yüklememelidir

Saydam kod için güvenlik incelemesi kritik kod için güvenlik incelemesi kadar kapsamlı değildir, çünkü saydam kod güvenlik duyarlı eylemleri gerçekleştiremez.Bir bayt dizisinden yüklenen derlemeler, saydam kodda fark edilmeyebilir ve o bayt dizisi denetlenmesi gereken kritik ya da daha da önemlisi güvenli kritik kod içerebilir.

CA2145

CA2145: Saydam yöntemler SuppressUnmanagedCodeSecurityAttribute ile donatılmamalıdır

SuppressUnmanagedCodeSecurityAttribute özniteliği ile donatılmış yöntemler, çağıran herhangi bir yöntem yerleştirilen örtülü bir LinkDemand'a sahiptir.Bu LinkDemand, çağıran kodun kritik güvenlikli olmasını gerektirir.SecurityCriticalAttribute özniteliği ile SuppressUnmanagedCodeSecurity kullanan yöntemi işaretlemek, bu gereksinimi çağıran yöntem için daha belirgin yapar.

CA2146

CA2146: Türler en az kendi taban türleri ve arabirimleri kadar kritik olmalıdır

Bu kural, kendi temel türü kadar kritik olmayan saydam güvenlik özniteliğine sahip bir tür türetildiğinde veya arabirim uygulandığında tetiklenir.Yalnızca kritik türler, kritik temel türlerden veya kritik arabirimleri uygulayanlardan türeyebilir ve sadece kritik ya da kritik güvenli türler, kritik güvenli temel türler veya kritik güvenli arabirim uygulamalarından türeyebilir.

CA2147

CA2147: Saydam türler güvenlik bildirimlerini kullanmamalıdır

SecurityTransparentAttribute olarak işaretlenmiş kod, onay için yeterli izinlerin verilmiş olmasını garanti etmez.

CA2149

CA2149: Saydam yöntemler yerel kod içine çağırmamalıdır

Bu kuralın yerel kodu (örneğin, bir P/Invoke) doğrudan çağıran herhangi bir saydam yöntem olduğunda ortaya çıkar.Bu kural ihlalleri 2. seviye saydamlık modeli içindeki MethodAccessException öncülüğünde ve 1. seviye saydamlık modeli içindeki UnmanagedCode için talepte bulunur.

CA2151

CA2151: Kritik türler içeren alanlar güvenlik açısından kritik olmalıdır

Kritik güvenlik türlerini kullanmak için türe başvuran kod güvenliği kritik veya güvenlik güvenli kritik olmalıdır.Dolaylı başvuru olsa bile bu doğrudur.Bu nedenle, bir güvenlik saydam veya güvenlik güvenli kritik alana erişmek mümkün olmayacaktır, çünkü saydam kod hala alana erişemeyecektir.

CA2200

CA2200: Yığın ayrıntılarını korumak için yeniden fırlatma

Tekrar fırlatılan bir özel durum ve fırlatma açıklamasında açıkça belirtilen özel durum.Bir özel durum throw deyiminde özel durum belirterek yeniden fırlatılırsa yöntem listesi özel durum döndüren özgün yöntem ile kaybolan geçerli yöntem arasında çağırır.

CA2201

CA2201: Ayrılmış özel durum türleri oluşturmayın

Bu özgün hata algılama ve hata ayıklamayı zorlaştırır.

CA2202

CA2202: Nesneleri birden çok kez atmayın

Yöntem uygulaması, aynı nesne üzerinde System.IDisposable.Dispose veya bir Dispose eşdeğer (örneğin, bazı türleri üzerinde Close() yöntemi) için birden fazla çağrı kodu yolları içerir.

CA2204

CA2204: Değişmez değerler doğru yazılmalıdır

Bir yöntemin gövdesi içinde hazır bilgi dizesi Microsoft yazım denetimi kitaplığı tarafından tanınmayan bir veya birkaç sözcük içerir.

CA2205

CA2205: Win32 API'sının yönetilen eşdeğerlerini kullanın

İşletim sistemini çağıran yöntemin tanımlanmış olduğu ve eşdeğer bir işlevselliği olan yöntem .NET Framework sınıf kitaplığı içinde yer alır.

CA2207

CA2207: Değer türü statik alanları satır içi başlatın

Bir değer türü açık bir statik oluşturucu bildirir.Bu kural ihlalini düzeltmek için bildirildiğinde, tüm statik veriyi başlatın ve statik oluşturucuyu kaldırın.

CA2208

CA2208: Bağımsız değişken özel durumlarını doğru örnekleyin

Varsayılan (parametresiz) kurucu veya ArgumentException türeyen özel bir durum türü için çağrı yapılır veya hatalı dize bağımsız değişkeni parametreli bir kurucu veya ArgumentException türeyen bir özel durum türü iletilir.

CA2210

CA2210: Derlemelerin tanımlayıcı adı geçerli olmalıdır

Güçlü ad oynanmış derlemeyi bilmeden yükleyerek istemcileri korur.Güçlü adı olmayan derlemeler oldukça sınırlı sayıda senaryo dışında kullanılmamalıdır.Düzgün imzalanmamış derlemeleri paylaşırsanız veya dağıtırsanız, derleme aslı bozuabilir, ortak dil çalışma zamanı derlemeyi yükleyemeyebilir veya kullanıcı kendi bilgisayarındaki doğrulamayı devre dışı bırakabilir.

CA2211

CA2211: Sabit olmayan alanlar görünür olmamalıdır

Ne sabitler, ne de salt okunur olan statik alanlar güvenli iş parçacığı değildir.Böyle bir alana erişim dikkatli bir şekilde denetlenebilir ve sınıf nesnesi erişimi eşitlemek için gelişmiş programlama tekniklerini gerektirir.

CA2212

CA2212: Servis verilen bileşenleri WebMethod ile işaretlemeyin

System.EnterpriseServices.ServicedComponent'dan devralan türde bir yöntem System.Web.Services.WebMethodAttribute kullanılarak işaretlendi.WebMethodAttribute ve bir ServicedComponent yönteminin çakışan davranışları ve bağlam ve işlem akışı için gereksinimleri olduğu için, bazı senaryolarda yöntemin davranışı yanlış olacaktır.

CA2213

CA2213: Atılabilen alanlar atılmalıdır

IDisposable uygulayan türlerin alanları System.IDisposable uygulayan bir türle bildirilir.Bir Dispose yöntemi alanının tanıtıcısının bildirim türü Dispose yöntemi tarafından çağrılmaz.

CA2214

CA2214: Geçersiz kılınabilir yöntemleri oluşturucular içinde çağırmayın

Kurucu sanal bir yöntemi çağırdığında, yapıcı yöntemini çağıran örneği işletilmemiş olabilir.

CA2215

CA2215: Atma yöntemleri taban sınıf atmayı çağırmalıdır

Tür atılabilen bir türden devralınırsa, kendi Dispose yönteminden basit tür olan Dispose yöntemini çağırmalıdır.

CA2216

CA2216: Atılabilir türler sonlandırıcıyı bildirmelidir

System.IDisposable uygulayan yöntem ve yönetilmeyen kaynakların kullanımını öneren alanlar Object.Finalize'da açıklandığı gibi sonlandırıcıyı uygulamazlar.

CA2217

CA2217: Numaralandırmaları FlagsAttribute ile işaretlemeyin

Dışarıdan görünen FlagsAttribute ile işaretlenmiş numaralandırma ve ikinin katı olmayan ya da numaralandırma üzerinde tanımlanan diğer değerlerin kombinasyonu olmayan bir ya da daha fazla değer vardır.

CA2218

CA2218: GetHashCode'u Eşittir'i geçersiz kılarak geçersiz kılın

GetHashCode, karma algoritmalar ve karma tablolar gibi veri yapıları için uygun olan geçerli örneği temel alan bir değer döndürür.Aynı türdeki ve eşit olan iki nesnenin aynı karma kodu döndürmesi gerekir.

CA2219

CA2219: Özel durum yan tümceleri içinde özel durum harekete geçirmeyin

Bir istisna sonlandırıcı ya da arıza yan tümcesine neden olduğunda, yeni istisna aktif istisnayı saklar.Filtre yan tümcesinde bir özel durum ortaya çıktığında, çalışma zamanı özel durumu sessizce yakalar.Bu özgün hata algılama ve hata ayıklamayı zorlaştırır.

CA2220

CA2220: Sonlandırıcılar taban tür sonlandırıcıları çağırmalıdır

Sonlandırılma, devralma hiyerarşisi aracılığıyla gönderilmelidir.Bunu güvence altına almak için, türler basit sınıflarının kendi Finalize yönteminde Finalize yöntemini çağırmalıdır.

CA2221

CA2221: Sonlandırıcılar korunmalıdır

Sonlandırıcılar aile erişim değiştiricisi kullanmalıdır.

CA2222

CA2222: Devralınan üye görünürlüğünü azaltmayın

Devralınan üyeler için erişim değiştiricisini değiştirmemelisiniz.Devralınmış bir üyeyi özel olarak değiştirme, arayanların yöntemin temel sınıf uygulamasına erişmesini engellemez.

CA2223

CA2223: Üyeler dönüş türünden daha fazla farklı olmalıdır

Ortak dil çalışma zamanı, aynı üyeler arasında ayrım yapmak için dönüş türleri kullanımına izin verir, ancak bu özelliği ne ortak dil belirtimi ne de .NET programlama dillerinin ortak özelliğidir.

CA2224

CA2224: Eşittir işlecini aşırı yükleyerek eşittiri geçersiz kılın

Ortak bir tür eşitlik işlecini uygular, ancak Object.Equals'ı geçersiz kılmaz.

CA2225

CA2225: İşleç aşırı yüklemeleri adlandırılmış alternatiflere sahiptir

Operatör aşırı yüklemesi bulundu ve beklenen adlandırılmış alternatif yöntem bulunamadı.Adlandırılmış alternatif üye operatörün sağladığı gibi aynı fonksiyonlara erişmeyi sağlar ve aşırı yüklenmiş operatörlere destek olmayan dilleri programlayan programcılar için bunlar sağlanmıştır.

CA2226

CA2226: İşleçler simetrik aşırı yüklemelere sahip olmalıdır

Bir tür, eşitlik ya da eşitsizlik operatörünü uygular ve ters işleci uygulamaz.

CA2227

CA2227: Koleksiyon özellikleri salt okunur olmalıdır

Yazılabilir koleksiyon özelliği kullanıcının koleksiyonun tamamını farklı bir koleksiyonla değiştirmesine izin verir.Salt okunur özelliği değiştirilmesini durdurur ancak yine de tekil üyelerin ayarlamasına izin verir.

CA2228

CA2228: Yayımlanmamış kaynak biçimlerini yollamayın

Bu .NET Framework öğesinin daha önceki sürümleri kullanılarak oluşturulan kaynak dosyaları .NET Framework'ün desteklenen .NET Framework sürümleri tarafından kullanılamayabilir.

CA2229

CA2229: Serileştirme oluşturucularını uygulayın

Bu kural ihlalini düzeltmek için seri hale getirme yapıcısını uygular.Kapalı bir sınıf için kurucusunu özel yapın; aksi takdirde korunmuş yapın.

CA2230

CA2230: Değişken bağımsız değişkenler için params kullanın

Ortak veya korumalı tür VarArgs çağırma kuralı params anahtar sözcüğünü kullanan bir ortak veya korumalı yöntem içerir.

CA2231

CA2231: ValueType.Equals değerini geçersiz kılmada eşittir işlecini aşırı yükle

Bir değer türü Object.Equals'ı geçersiz kılar, ama eşitlik işlecini uygulamaz.

CA2232

CA2232: Windows Forms giriş noktalarını STAThread ile işaretleyin

STAThreadAttribute, COM uygulama modelinin tek bir iş parçacıklı grup olduğunu gösterir.Bu öznitelik Windows Forms kullanan herhangi bir uygulamanın girişinde sunulur; atlanırsa, Windows bileşenleri doğru çalışmayabilir.

CA2233

CA2233: İşlemler taşmamalıdır

Aritmetik işlemleri, işlenenleri doğrulamadan gerçekleştirmemelisiniz.Bu, işlemin sonucu söz konusu olan veri türleri için olası değerler aralığının dışında olduğundan emin olur.

CA2234

CA2234: Dizeler yerine System.Uri nesneleri gönderin

Adında "URI", "URI", "urn", "urn", "url" veya "url" içeren bir dize parametresi olan yöntem çağrısı yapıldı.Bildirim türü yöntemi, System.Uri parametresini aşırı yüklemeye uyan yöntemi içerir.

CA2235

CA2235: Tüm serileştirilebilir olmayan alanları işaretleyin

Seri hale getirilemeyen bir örnek alan türü seri hale getirilebilir bir tür içinde bildirilir.

CA2236

CA2236: ISerializable türler üzerinde taban sınıf yöntemlerini çağırın

Bu kural ihlalini düzeltmek için, taban türü GetObjectData yöntemini veya karşılık gelen türetilmiş yöntemden ya da oluşturucudan serileştirme oluşturucusunu çağırın.

CA2237

CA2237: ISerializable türleri SerializableAttribute ile işaretleyin

Ortak dil çalışma zamanı tarafından seri hale getirilebilir olarak tanınması için, türler ISerializable arabirimini uygulaması aracılığıyla özel seri hale getirme yordamı kullanıldığında SerializableAttribute özniteliği kullanılarak işaretlenmelidir.

CA2238

CA2238: Serileştirme yöntemlerini doğru uygulama

Seri hale getirme olayı tanıtan yöntem türü, doğru imzaya, dönüş türüne veya görünürlüğe sahip değil.

CA2239

CA2239: İsteğe bağlı yöntemler için serileştirme kaldırma yöntemler sağlayın

System.Runtime.Serialization.OptionalFieldAttribute özniteliğini kullanarak işaretlenmiş alan türü ve tür, yöntemlerinin yönetilmesi seriyi kaldırma olayını sağlamaz.

CA2240

CA2240: ISerializable'ı doğru uygulayın

Bu kural ihlalini düzeltmek için GetObjectData yöntemi geçersiz kılınabilir ve bütün örnek alanların seri hale getirme işlemine dahil edildiğinden emin olun ya da NonSerializedAttribute özniteliğini kullanarak açıkça işaretleyin.

CA2241

CA2241: Biçimlendirme yöntemlerine doğru bağımsız değişkenleri sağlayın

System.String.Format için geçirilen biçim, her bir nesne bağımsız değişkeninden sorumlu olan öğe biçimini içermez.

CA2242

CA2242: NaN için doğru sınayın

Bu ifade, değeri Single.Nan veya Double.Nan'a karşı test eder.Single.IsNan(Single) ya da Double.IsNan(Double) değerini test etmek için kullanın.

CA2243

CA2243: Öznitelik dize harfleri doğru çözümlenmelidir

Bir öznitelik dize literal parametresi, URL, GUID ya da sürüm için doğru ayrıştırmaz.

CA5122

CA5122 P/Invoke bildirimleri güvenli kritik olmamalıdır

Güvenlik duyarlı işlem gerçekleştirildiğinde yöntemler SecuritySafeCritical olarak işaretlenir ancak saydam mod kullanılarak da güvenli olur.Saydam kod, P/Invoke aracılığıyla yerel kodu hiçbir zaman doğrudan çağırmayabilir.Bu nedenle, P/Invoke güvenlik güvenli kritik olarak işaretleme çağırmak için saydam kodu etkinleştirmez ve güvenlik çözümlemesi için yanıltıcıdır.