2015-06-17 21 views
36

Asp.net vnext engineering guideline'a bakıyorum ve NotNull özniteliğini null için açık bir denetim argümanı ve ArgumentNullException atma yerine kullanmanızı tavsiye ettiklerini fark ettik. Beni şaşırtmış olan şey, bu kılavuzdaki temelin bu özniteliği bildirmek için yeterli olması ve kontrol kodunun derleme zamanında metot gövdesine üretilmesidir. Bunu test projemde yapmaya çalıştım, ancak sihir gerçekleşmedi, yaniistisnasını System.ArgumentNullException yerine attı. Bunun nasıl çalışması gerekiyor? Derleme zamanında kontrol kodunu enjekte etmek için bazı AOP kütüphanelerini kullanacaklar mı?NotNull özniteliği

+0

@usr/DNX, sen kodunu –

+0

http://stackoverflow.com/questions/32806369/using-notnull-for-a-methods-parameters/37030122 görüşmelere değiştirmek precompilation adımlarını ekleyebilir Bu –

cevap

35

Güncelleme: 12 Ocak,

NotNullAttribute 2016 gitti. ASP.NET ekibi kaldırdı ve şu anda geri getirmek için bir plan yok.


özelliği

gerçek kontrol yapar kodu ile, Roslyn kullanılarak, bir precompilation aşamasında değiştirilecektir. Ancak, özellik henüz hazır değil. Daha sonraki bir versiyonda gelecek. ASP.NET 5'te

+0

'u başarmak için dokumacıları nasıl kullanabileceğinizi öğrenmek için Şu anda sadece bir iskeleti olduğunu mu söylüyorsunuz ve uygulama gelecek bir zamanda sağlanacak mı? I NotNullAttribute.cs mevcut kaynak kodu görebileceğiniz gibi, sınıf boş '[AttributeUsage (AttributeTargets.Parameter, AllowMultiple = yalancı)] iç sızdırmaz sınıfı NotNullAttribute: Özellik { }' – Stack0verflow

+0

Evet bu doğru –

+0

Teşekkürler. Neden boş olduğunu merak ettim. – Stack0verflow