Çağıran bilgileri

Arayan Bilgisi özniteliklerini kullanarak bir yöntemin arayanı hakkında bilgi edinebilirsiniz. Kaynak kodunun dosya yolunu, kaynak kodundaki satır numarasını ve arayanın üye adını alabilirsiniz. Bu bilgiler, tanılama araçlarının izlenmesine, oluşturulmasına ve bu araçlarda hata ayıklanmasına yardımcı olur.

Bu bilgileri elde etmek için her biri varsayılan değere sahip isteğe bağlı parametrelere uygulanan öznitelikler kullanabilirsiniz. Aşağıdaki tabloda System.Runtime.CompilerServices ad alanında tanımlanan Caller Info öznitelikleri listeleniyor:

Öznitelik Açıklama Tür
CallerFilePath Kaynak dosyasının arayanı içeren tam yolu. Bu, derleme zamanındaki dosya yoludur. String
CallerLineNumber Yöntemin çağrıldığı kaynak dosyadaki satır numarası. Integer
CallerMemberName Arayanın yöntemi veya özellik adı. Bu konunun devamında yer alan Üye Adları bölümüne bakın. String

Örnek

Aşağıdaki örnekte, çağıranı izlemek için bu öznitelikleri nasıl kullanabileceğiniz gösterilmektedir.

open System.Diagnostics
open System.Runtime.CompilerServices
open System.Runtime.InteropServices

type Tracer() =
    member _.DoTrace(message: string,
                      [<CallerMemberName; Optional; DefaultParameterValue("")>] memberName: string,
                      [<CallerFilePath; Optional; DefaultParameterValue("")>] path: string,
                      [<CallerLineNumber; Optional; DefaultParameterValue(0)>] line: int) =
        Trace.WriteLine(sprintf $"Message: {message}")
        Trace.WriteLine(sprintf $"Member name: {memberName}")
        Trace.WriteLine(sprintf $"Source file path: {path}")
        Trace.WriteLine(sprintf $"Source line number: {line}")

Açıklamalar

Çağıran Bilgisi öznitelikleri yalnızca isteğe bağlı parametrelere uygulanabilir. Çağıran Bilgisi öznitelikleri, derleyicinin bir Çağıran Bilgisi özniteliğiyle dekore edilmiş her isteğe bağlı parametre için uygun değeri yazmasına neden olur.

Arayan Bilgisi değerleri, derleme zamanında Ara Dile (IL) değişmez değerler olarak verilir. Özel durumlar için StackTrace özelliğinin sonuçlarından farklı olarak, sonuçlar karartmadan etkilenmez.

Arayan bilgisini denetlemek veya gizlemek için isteğe bağlı bağımsız değişkenleri açıkça sağlayabilirsiniz.

Üye adları

Üye adını çağrılan yöntemin CallerMemberName bağımsız String değişkeni olarak belirtmekten kaçınmak için özniteliğini kullanabilirsiniz. Bu tekniği kullanarak, Yeniden Düzenlemeyi Yeniden Adlandır'ın değerleri değiştirmemesi String sorununu önlersiniz. Bu, özellikle aşağıdaki görevler için yararlı olur:

  • İzleme ve tanılama yordamlarını kullanma.
  • Verileri bağlarken INotifyPropertyChanged arabirimini uygulama. Bu arabirim, bir nesnenin özelliğinin bağlama denetimine özelliğin değiştirildiğini bildirmesini ve böylece denetimin güncelleştirilmiş bilgileri görüntüleyebilmesini sağlar. CallerMemberName özniteliği olmadan, özellik adını değişmez değer olarak belirtmeniz gerekir.

Aşağıdaki grafik, CallerMemberName özniteliğini kullandığınızda döndürülen üye adlarını gösterir.

Çağrının oluştuğu yer Üye adı sonucu
Yöntem, özellik veya olay Yöntemin, özelliğin veya aramanın kaynaklandığı olayın adı.
Oluşturucu ".ctor" dizesi
Statik oluşturucu ".cctor" dizesi
Yok edici "Finalize" dizesi
Kullanıcı tanımlı işleçler veya dönüştürmeler Üye için oluşturulan "op_Addition" gibi bir ad.
Öznitelik oluşturucu Özniteliğin uygulandığı üyenin adı. Öznitelik bir üye içerisindeki herhangi bir öğeyse (parametre, dönüş değeri veya genel tür parametresi gibi), bu sonuç bu öğeyle ilişkili öğenin adıdır.
İçeren üye yok (örneğin, derleme düzeyi veya türlere uygulanan öznitelikler) İsteğe bağlı parametrenin varsayılan değeri.

Ayrıca bkz.