Próbuję napisać atrybut uwierzytelniania, aby zastosować do niektórych usług w aplikacji usługi WCF (przy użyciu Unity i Unity.Wcf).Wstrzykiwanie zależności do atrybutu za pomocą Unity w WCF
Uwierzytelnienie przeprowadzane jest przez zewnętrzny interfejs uwierzytelniający (do aplikacji serwisowej), który jest obecnie wstrzykiwany za pomocą wstrzyknięcia konstrukcyjnego do klasy serwisowej i wywoływany bezpośrednio w każdej z metod serwisowych.
Prowadzi to do wielu powtarzających się kodów w każdej z metod serwisowych.
Zamiast tego chcę przenieść to do atrybutu.
Potrzebuję jednak, aby interfejs uwierzytelniania był dostępny w atrybucie.
Oczywiście, jeśli użyję iniekcji konstrukcyjnej na atrybucie, to jest to wymagany parametr podczas dekorowania mojej metody usługi atrybutem, ale nie mam do niego dostępu w tym momencie, ponieważ jest on połączony przez Unity.
Jak mogę wstrzyknąć (lub w inny sposób uzyskać dostęp do) interfejs uwierzytelniania w moim atrybucie?
Powróć do Service Locator i ustaw atrybut [Humble Object] (http://xunitpatterns.com/Humble%20Object.html), który tylko deleguje na usługę, którą rozwiązuje, lub uczyń atrybut pasywnym, jak wyjaśniono [tutaj] (http://blog.ploeh.dk/2014/06/13/passive-attributes/) i [tutaj] (https://www.cuttingedge.it/blogs/steven/pivot/entry.php? id = 98). – Steven
Dzięki Steven, przeczytam te linki. – Shevek
Opieram moją opinię na [Mark Seeman's book] (http://amzn.to/12p90MG) i dlatego traktuję Lokalizator Usług jako anty-wzór. Ale jeśli Steven udzieliłby odpowiedzi zamiast komentarza, wzniosłbym go za link do [atrybutów pasywnych] (http://blog.ploeh.dk/2014/06/13/passive-attributes/). – wigy