Özniteliklere genel bakış (Visual Basic)

Öznitelikler meta verileri veya bildirim bilgilerini kodla (derlemeler, türler, yöntemler, özellikler vb.) birleştirmeye yönelik güçlü bir yöntem sağlar. Bir öznitelik bir program varlığıyla ilişkilendirildikten sonra, özniteliği yansıma adlı bir teknik kullanılarak çalışma zamanında sorgu olabilir. Daha fazla bilgi için bkz. Yansıma (Visual Basic).

Öznitelikler aşağıdaki özelliklere sahiptir:

  • Öznitelikler, programınıza meta veriler ekler. Meta veriler, bir programda tanımlanan türler hakkında bilgidir. Tüm .NET derlemeleri, derlemede tanımlanan türleri ve tür üyelerini açıklayan belirli bir meta veri kümesi içerir. Gerekli ek bilgileri belirtmek için özel öznitelikler ekebilirsiniz. Daha fazla bilgi için bkz. Özel Öznitelikler Oluşturma (Visual Basic).

  • Bütün derlemelere, modüllere veya sınıflar ve özellikler gibi daha küçük program öğelerine bir veya daha fazla öznitelik uygulayabilirsiniz.

  • Öznitelikler, yöntemler ve özelliklerle aynı şekilde bağımsız değişkenleri kabul eder.

  • Programınız kendi meta verilerini veya diğer programlarda yer alan meta verileri yansıma kullanarak inceler. Daha fazla bilgi için bkz. Yansıma Kullanarak Özniteliklere Erişme (Visual Basic).

Öznitelikleri Kullanma

Öznitelikler herhangi bir bildirimin çoğuna yerleştirilse de, belirli bir öznitelik geçerli olduğu bildirim türlerini kısıtlar. Bu Visual Basic, öznitelik açılı ayraç () içine < > alınır. Uygulandığı öğenin hemen öncesinde, aynı satırda görünmesi gerekir.

Bu örnekte, özniteliği SerializableAttribute bir sınıfa belirli bir özelliği uygulamak için kullanılır:

<System.Serializable()> Public Class SampleClass
    ' Objects of this type can be serialized.
End Class

özniteliğine sahip bir DllImportAttribute yöntem şu şekilde bildirildi:

Imports System.Runtime.InteropServices
<System.Runtime.InteropServices.DllImport("user32.dll")>
Sub SampleMethod()
End Sub

Bir bildirime birden fazla öznitelik yerleştiril olabilir:

Imports System.Runtime.InteropServices
Sub MethodA(<[In](), Out()> ByVal x As Double)
End Sub
Sub MethodB(<Out(), [In]()> ByVal x As Double)
End Sub

Belirli bir varlık için bazı öznitelikler birden çok kez belirtilebilir. Bu tür çok kullanıcılı bir özniteliğin bir örneği ConditionalAttribute şöyledir:

<Conditional("DEBUG"), Conditional("TEST1")>
Sub TraceMethod()
End Sub

Not

Kural gereği, tüm öznitelik adlarının sonunda "Öznitelik" sözcüğü yer alan diğer öğelerden ayırt .NET Framework. Ancak, kodda öznitelikleri kullanırken öznitelik soneki belirtmenize gerek yok. Örneğin, [DllImport] ile [DllImportAttribute] eşdeğerdir, DllImportAttribute ancak öznitelikte özniteliğin gerçek adı .NET Framework.

Öznitelik Parametreleri

Birçok özniteliğin konumsal, adlandırlanmamış veya adlandırılmış olan parametreleri vardır. Konumsal parametreler belirli bir sırada belirtilmelidir ve atlanamaz; adlandırılmış parametreler isteğe bağlıdır ve herhangi bir sırayla belirtilebilir. Önce konumsal parametreler belirtilir. Örneğin, bu üç öznitelik eşdeğerdir:

<DllImport("user32.dll")>
<DllImport("user32.dll", SetLastError:=False, ExactSpelling:=False)>
<DllImport("user32.dll", ExactSpelling:=False, SetLastError:=False)>

İlk parametre olan DLL adı konumsaldır ve her zaman önce gelir; diğerleri olarak adlandırılmıştır. Bu durumda, her iki adlandırılmış parametre de varsayılan olarak false olur, bu nedenle atlanabilirler. Varsayılan parametre değerleri hakkında bilgi için tek tek özniteliğin belgelerine bakın.

Öznitelik Hedefleri

Özniteliğin hedefi, özniteliğin uygulandığı varlıktır. Örneğin, bir öznitelik bir sınıfa, belirli bir yönteme veya bütün derlemeye uygulanabilir. Varsayılan olarak, bir öznitelik önünde yer alan öğeye uygulanır. Ancak özniteliğin bir yönteme mi, parametresine mi yoksa dönüş değerine mi uygulandığını da açıkça tanımlayabilirsiniz.

Öznitelik hedefini açıkça tanımlamak için aşağıdaki söz dizimini kullanın:

<target : attribute-list>

Olası target değerlerin listesi aşağıdaki tabloda gösterilmiştir.

Hedef değer Şunlara uygulanır
assembly Bütün bütün derleme
module Geçerli derleme modülü (bir derleme modülünden Visual Basic)

Aşağıdaki örnekte, derlemelere ve modüllere özniteliklerin nasıl uygulanacakları gösterir. Daha fazla bilgi için bkz. Ortak Öznitelikler (Visual Basic).

Imports System.Reflection
<Assembly: AssemblyTitleAttribute("Production assembly 4"),
Module: CLSCompliant(True)>

Öznitelikler için Yaygın Kullanımlar

Aşağıdaki listede, kodda özniteliklerin yaygın kullanımlarının birkaçı yer almaktadır:

  • Yöntemin SOAP protokolü WebMethod üzerinden çağrılabilir olması gerektiğini belirtmek için Web hizmetlerde özniteliğini kullanarak yöntemleri işaretleme. Daha fazla bilgi için bkz. WebMethodAttribute.

  • Yerel kodla birlikte çalışmada yöntem parametrelerini sıralamayı açıklama. Daha fazla bilgi için bkz. MarshalAsAttribute.

  • Sınıflar, yöntemler ve arabirimler için COM özelliklerini açıklama.

  • sınıfını kullanarak unmanaged code DllImportAttribute çağrısı.

  • Derlemenizi başlık, sürüm, açıklama veya ticari marka açısından açıklama.

  • Kalıcılık için serileştirmek için bir sınıfın hangi üyelerini açıklama.

  • XML serileştirme için sınıf üyeleri ve XML düğümleri arasında eşlemeyi açıklama.

  • Yöntemler için güvenlik gereksinimlerini açıklama.

  • Güvenliği zorlamak için kullanılan özellikleri belirtme.

  • Kodun kolayca hata ayıklaması için iyileştirmeleri tam zamanında (JIT) derleyicisi tarafından denetleme.

  • Bir yönteme çağıran hakkında bilgi alma.

Daha fazla bilgi için bkz.

Ayrıca bkz.