Özniteliklere genel bakış (Visual Basic)

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

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

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

  • Bütün bütünleştirilmiş kodlara, 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 edebilir.

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

Öznitelikleri Kullanma

Öznitelikler herhangi bir bildirimin çoğuna yerleştirilebilir, ancak belirli bir öznitelik geçerli olduğu bildirim türlerini kısıtlayabilir. Visual Basic'da bir öznitelik açılı ayraç (<> ) içine alınır. Uygulandığı öğeden hemen önce, aynı satırda görünmelidir.

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 DllImportAttribute sahip bir yöntem şöyle bildirilir:

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

Bir bildirime birden fazla öznitelik yerleştirilebilir:

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 bir çok kullanımlı özniteliğine örnek olarak şunlar gösteriliyor:ConditionalAttribute

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

Not

Kural gereği, tüm öznitelik adları .NET Framework diğer öğelerden ayırt etmek için "Öznitelik" sözcüğüyle biter. Ancak, kodda öznitelikleri kullanırken öznitelik son ekini belirtmeniz gerekmez. Örneğin, [DllImport] ile eşdeğerdir[DllImportAttribute], ancak DllImportAttribute özniteliğin .NET Framework gerçek adıdır.

Öznitelik Parametreleri

Birçok özniteliğin konumsal, adsız veya adlandırılmış olabilecek parametreleri vardır. Herhangi bir konumsal parametre belirli bir sırada belirtilmelidir ve atlanamaz; adlandırılmış parametreler isteğe bağlıdır ve herhangi bir sırada belirtilebilir. Önce konum parametreleri 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ğerlerinin adı verilmiştir. Bu durumda, her iki adlandırılmış parametre de atlanabilmeleri için varsayılan olarak false olur. 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 bir derlemeye uygulanabilir. Varsayılan olarak, bir öznitelik önüne gelen öğeye uygulanır. Ancak bir özniteliğin bir yönteme mi, parametresine mi yoksa dönüş değerine mi uygulanacağını açıkça belirleyebilirsiniz.

Bir ö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ünleştirilmiş kod
module Geçerli derleme modülü (Visual Basic Modülünden farklıdır)

Aşağıdaki örnekte, derlemelere ve modüllere özniteliklerin nasıl uygulanacağı gösterilmektedir. 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 liste, koddaki özniteliklerin yaygın kullanımlarından birkaçını içerir:

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

  • Yerel kodla birlikte çalışırken 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 yönetilmeyen kodu çağırma DllImportAttribute .

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

  • Kalıcılık için bir sınıfın hangi üyelerini seri hale getirebileceğinizi açıklama.

  • XML serileştirme için sınıf üyeleriyle 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 hata ayıklaması kolay kalması için tam zamanında (JIT) derleyicisi tarafından iyileştirmeleri denetleme.

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

Daha fazla bilgi için bkz.

Ayrıca bkz.