Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 21086|Yanıt: 0

[Kaynak] InternalsVisibleToAttribute, dahili üyeyi belirtilen dost assembly ile açıklar

[Bağlantıyı kopyala]
Yayınlandı 6.02.2017 14:27:59 | | |
Youyuan Meclisi'ne Giriş
Biliyoruz ki, bir sınıfın iç olarak tanımlanan üyeleri (tipler, yöntemler, özellikler, değişkenler, olaylar dahil) sadece aynı montajda erişilebiliyor (tabii ki burada normal yoldan bahsediyorum, yansıma yoluyla erişim hariç). Bu kural . .NET 2.0 biraz bozuk durumda, bu da bir meclisin iç üyelerini belirli üyeler tarafından erişilecek şekilde ayarlamamıza olanak tanıyor. Bu iç üyeleri içeren montaja kaynak montaj diyoruz ve montaj kümesine dost assembly denir.

Arkadaş montaj kullanımı
Bu Özellik montaj seviyesinde kullanılır.


Bu şekilde, FriendAssembly programı assembly referansına girdikten sonra dahili Name özelliğine erişebilir.
Genel olarak, bu assembly:InternalsVisibleTo ("FriendAssembly") AssemblyInfo.cs daha iyi konumlandırılır, sonuçta assembly seviyesinde.

InternalsToVisibleTo ne zaman kullanılmalıdır
Aslında, bu özellik genel uygulamalarda kullanılmaz ve bu özelliği kötüye kullanmamalıyız. Çünkü genel olarak, iyi tasarlanmış bir meclisin dış dünyaya açık olması gerekmez.
Ancak birim test senaryoları bu özelliğin avantajını kullanabilir. Bu özellikle, birim testleri için kodun bu iç üyelere erişimi olduğunu belirtebiliriz, böylece bu üyeleri birim test yapabiliriz. Ancak bu, kaynak montajda arkadaş montajının adının ölü olarak yazılmasını gerektirir ve bu da bazı güvenlik sorunlarına yol açar. Güvenlik, imza montajlarının getirilmesiyle garanti edilebilir.

InternalsToVisibleTo ve imza montajı
Arkadaş meta assembly'nin adını ve açık anahtarını doğrudan InternalsVisibleTo olarak belirtebilirsiniz.
FriendAssembly için açık anahtarı oluşturmak üzere VS geliştirici komut satırını kullanın:


Kaynak montajının arkadaş montajının ve açık anahtarın adını belirtin:


Aslında, arkadaş montaj kaynak montaja referans verdiğinden, imzalı montaj ise imzasız bir montaja referans verdiğinden ve imzalı montaj imzasız bir dost montajı belirtemeyeceğinden, bunlardan herhangi biri imzalanmış olduğundan, imzalanmaları gerekir.





Önceki:Otomatik olarak Tenpay ödeme transfer sayfasına geçin ve bilgileri otomatik olarak doldurun
Önümüzdeki:InternalsVisibleTo kullanarak assembly üzerine "friend assembly" ekleyin
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com