2010-05-26 12 views
5

Olası Çoğalt değildir:
‘Arrays as attribute arguments is not CLS-compliant’ warning, but no type information givenC# derleyici uyarısı CS3016 temizleniyor: nitelik bağımsız değişkenleri olarak Diziler CLS uyumlu

Ben çeşitli yerlerde bu uyarı oluşturur bazı kodlar var. Onları düzeltmek istiyorum, ama onların nerede olduğunu bilmiyorum çünkü C# derleyicisi hata satırı bildirmiyor (bunun için açık bir MS Connect sorunu var).

Sorunlu kodun nerede olduğunu söyleyen bir araç var mı? IL seviyesi aracı gayet iyi, metot ismi biliniyor ve beyan türü yeterince iyi.

Sen gibi bir sınıf ilan ettiler
+0

Her nasılsa, bir ... – mark

+0

Gerçekten diğer soru size herhangi bir yardım nasıl görmüyorum kaçırdılar. – user7116

cevap

3

:

[SomeAttribute(new string[] { "foo", "bar" }) 
class SomeClass { } 

ya da benzeri bir öznitelik bildirdikten:

class SomeAttribute : Attribute 
{ 
    public SomeAttribute(string[] arr) { } // or another array 
} 

Ve montaj CLSCompliant olmak işaretlendiği için tüm bu oluyor:

[assembly:CLSCompliant(true)]

+0

Bunun nedenini biliyorum. Ben ilk olarak montajı CLSCompliant (true) olarak işaretleyen bendim. Tüm CLS uyumlu olmayan yerleri düzeltmek istiyorum ama hepsini el ile bulmak için zor bir zaman geçiriyorum. – mark

1

Ben aşağıdaki işlemi kabul ediyorum:

  • kullanın Visual Studio özniteliği seçeneğini "Tüm başvurular Bul" (Attribute türetmek kaç tane sınıflara Açıkçası bunu yapmak için gerekli sofistike bağlıdır) kendi kurucularınızdaki diziler var özelliklerini belirtmek diziler kullanarak öznitelikle dekore edilen şeyleri bulmak için sınıf kurucuları.

Söz konusu öznitelikler özümünüzde tanımlanmışsa, ilk kısım oldukça kolay olmalıdır. nitelikler bir bağımlılıktan ise

o zaman bu tür özellikler kullanılır yerleri bulmak için bir normal ifade arama kullanmak gerekebilir.

İlgili konular