Ç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. |