Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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. |