Aracılığıyla paylaş


Çağıran bilgileri

Arayan Bilgisi özniteliklerini kullanarak, bir yönteme çağıran hakkında bilgi edinebilirsiniz. Kaynak kodun dosya yolunu, kaynak kodundaki satır numarasını ve çağıranın üye adını alabilirsiniz. Bu bilgiler tanılama araçlarını izleme, hata ayıklama ve oluşturma için yararlıdır.

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

Özellik Açıklama Türü
CallerFilePath Çağıranı içeren kaynak dosyanın tam yolu. Bu, derleme zamanındaki dosya yoludur. String
CallerLineNumber Yöntemin çağrıldığı kaynak dosyadaki satır numarası. Integer
CallerMemberName Çağıranın yöntem 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.

Çağıran Bilgisi değerleri, derleme zamanında Ara Dile (IL) değişmez değer olarak gönderilir. Özel durumlar için StackTrace özelliğinin sonuçlarından farklı olarak, sonuçlar karartmadan etkilenmez.

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

Üye adları

Özniteliği, üye adını çağrılan yönteme bağımsız bir değişken olarak belirtmekten kaçınmak amacıyla kullanabilirsiniz. Bu tekniği kullanarak, Yeniden Düzenlemeyi Yeniden Adlandır'ın değerleri değiştirmemesi String sorununu önlersiniz. Bu avantaj özellikle aşağıdaki görevler için kullanışlıdır:

  • İzleme ve tanılama yordamlarını kullanma.
  • Verileri bağlarken INotifyPropertyChanged arabirimini uygulama. Bu arabirim, bir nesnenin özelliğinin, denetimin güncelleştirilmiş bilgileri görüntüleyebilmesi için özelliğin değiştirildiğini bağlı bir denetime bildirmesine olanak tanır. 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.

Aramalar şu anda gerçekleşiyor Üye adı sonucu
Yöntem, özellik veya olay Çağrının kaynaklandığı yöntemin, özelliğin veya olayın adı.
Yapıcı ".ctor" dizesi
Statik oluşturucu ".cctor" dizesi
Yıkıcı "Finalize" dizesi
Kullanıcı tanımlı işleçler veya dönüştürmeler Üye için oluşturulan ad( örneğin, "op_Addition").
Öznitelik oluşturucu Özniteliğin uygulandığı üyenin adı. Öznitelik bir üyenin içindeki herhangi bir öğeyse (parametre, dönüş değeri veya genel tür parametresi gibi), bu sonuç bu öğeyle ilişkili üyenin 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 bakınız