Uygulamamda daha önce bir yöntemi "ek açıklama" yapmak için normal C# öznitelikleri kullandım. Örn .:Tek bir yöntemde birden çok yönü
[Foo(SomeKey="A", SomeValue="3")]
[Foo(SomeKey="B", SomeValue="4")]
public void TheMethod()
{
SpecialAttributeLogicHere();
}
Ne SpecialAttributeLogicHere() yaptım düşünceli bu özel yöntemi açıklamalı tüm Foo özellikten bakmak oldu. O zaman (kendi başına), tüm anahtarlar ve değerler için kendi sözlüğünü oluşturur.
Şu anda PostSharp'a geçmeye çalışıyorum, çünkü SpecialAttributeLogic, OnEntry içinde bir özelliğe (ve daha temiz olan yöntem gövdesinden kaldırılmış) yerleştirilebilir. Foo, OnMethodBoundaryAspect'i genişleten bir yönüyle değiştirilecektir.
[Foo(SomeKey="A", SomeValue="3")]
[Foo(SomeKey="B", SomeValue="4")]
Ama Foo bir OnEntry, varsa "SpecialAttributeLogic" İki kez idam edilecek anlamına gelir:
Hala bunu şu şekilde kullanmak istiyorum. Temel olarak, her bir Foo() 'dan bütün anahtarları ve değerleri bir mantığa uygulayacağım bir sözlüke "topladım".
Bu (veya en iyi uygulamalar) PostSharp ile nasıl yapılır? Teşekkürler!
cevabım altında çalışma örneğim eklendi. –