2010-11-01 32 views
5

Ben onun yöntemlerden bazıları aşağıdaki özelliklere sahiptir kod üzerinde çalışıyorum: Ben olduğu gibi kod oluştururkenDevre Dışı CLS uyumluluğu

[CLSCompliantAttribute(false)] 

Nasıl, ben uyum olduğunu görmek olduğunu kontrol ediliyor ve yorum yaptığımda uygunluk kontrolü yapılmıyor mu?

Ben zıt davranış beklenen ettik

... [CLSCompliant(false)] işaretleri Eğer uymadığı eklemek üye ekleme

+0

Ne demek? – SLaks

+0

Uyarı mesajınızı gönderir misiniz? – max

cevap

8

.

Üye, uyumsuz olarak işaretlerseniz, uyumlu değilse, derleyici sizi uyarmayacaktır. (Zaten uyumlu olmadığını söylediğinden beri.)

Ancak, üye uyumlu olarak işaretlenmişse (açık ya da dolaylı olarak derleme düzeyinde öznitelikten), ancak aslında uyumlu değildir (örneğin, bir uint alır), derleyici sizi uyarır (çünkü öznitelik şimdi üye hakkında yalan söylüyor).

+0

, eğer uyarıyı alırsam - bu özellik benim sahip olduğum anlamına mı geliyor: [CLSCompliant (true)] kodumda bir yerde daha yüksek bir kapsamda? – user429400

+0

@ user: Hangi uyarı? – SLaks

+4

Muhtemelen montaj seviyesinde var. Properties/AssemblyInfo.cs –

1

Örneğin, AssemblyInfo.cs dosyasına ekleyebilirsiniz ve tüm grubu gruplayabilirsiniz: *. gibi:

using System; 
using System.Reflection; 
using System.Runtime.InteropServices; 
[assembly: AssemblyDescription("")] 
[assembly: AssemblyConfiguration("")] 
[assembly: AssemblyCulture("")] 
[assembly: CLSCompliant(false)] 


// Setting ComVisible to false makes the types in this assembly not visible 
// to COM components. If you need to access a type in this assembly from 
// COM, set the ComVisible attribute to true on that type. 
[assembly: ComVisible(false)] 

// The following GUID is for the ID of the typelib if this project is  exposed to COM 
[assembly: Guid("d29c53b6-88e4-4b33-bb86-f39b4c733542")] 

// Version information for an assembly consists of the following four  values: 
// 
//  Major Version 
//  Minor Version 
//  Build Number 
//  Revision 
// 
// You can specify all the values or you can default the Revision and Build  Numbers 
// by using the '*' as shown below: 
[assembly: AssemblyVersion("1.0.0.0")] 
[assembly: AssemblyFileVersion("1.0.0.0")]