PostSharp, kendi web sitesindeki örneklerde ana sistem düzeneklerinde çağrıları engelleme demosuna sahiptir. Bir kaç kez denedim ve söz konusu intercept çağrılarını mecliste çoğaltmak için denemedim.PostSharp on derlemeler
Benim yaklaşımım basitçe enstrümanı istediğim isim alanını ve yöntemi hedefleyen derleme düzeyi özelliğini yerleştirmekti. Bu benim için hiç çalışmadı.
gibi bir şey:
[montaj: ("My.BusinessLayer *" "MyCategory", AttributeTargetTypes =) Trace]
Burada bir şey eksik? Kaynağın bunun için çekilmemiş olması durumunda enstrümantasyon yönümün bir çalışma zamanı enjeksiyonu yapamaması mümkün mü? Çalışma zamanı enjeksiyonları yapabileceğimi düşündüm ...
Teşekkürler.
Gael, So ... Bir birim testi oluşturmuş olsaydım ve bir "yüksek maliyet" yöntemi olduğu için bir yöntem çağrısını engellemek istedim ... Yukarıdaki gibi konuştuğunuzda, aramayı ekleyebilirim, ama sadece birim Ben doğrudan çağrılırsa testin çağrıları kesişir, fakat meclisi değil aynı yöntemlere çağrıları test ediyordum? Bunu yapmak isteseydim, test ettiğim meclise müdahale etmem gerekirdi? - Söz konusu gelişmiş senaryodan örnekler var mı? Bunu görmek çok isterim. – pinvoke
Evet, işte bu kadar. A ve B, B referansları A. A ve B çağrı yöntemi Thread.Sleep. B projesinin içinde Thread.Sleep'a bir yön koyarsınız. Sadece B'den Thread.Sleep'a yapılan aramalar engellenir, A. –
numaralı telefondan aranmaz Ve P-Invoke'u sevdiğinizden beri P-Invoke yöntemlerine de yer vermek mümkündür :). –