ответ

4

Вы не можете сделать это с Unity. Unity - это контейнер для инъекций зависимостей, и вся идея заключается в том, чтобы соответствовать Dependency Inversion Principle, что в основном означает, что вы программируете абстракцию, а не реализацию. Программирование абстракции означает, что вы используете абстрактные типы или интерфейсы, и они не могут быть статичными!

Некоторые люди видят в этом, почему DI плохо, и инструменты, такие как PostSharp, являются святым граалем в разработке программного обеспечения, но если вы напишете свое полное приложение с использованием статических классов, у вас будет гораздо больше проблем, чем такие инструменты, как PostSharp, вы. Все начинается с хорошего программного обеспечения, и SOLID principles дают важные рекомендации для этого.

Если вы играете по правилам ТВЕРДЫХ принципов, вы автоматически получаете классы экземпляров, do one thing, use Dependency Injection, являются easy to extend и скрыты за thin interfaces. Это приводит к программному обеспечению, которое можно тестировать, обслуживать и настраивать. И когда вы разработали систему таким образом, вряд ли когда-либо возникнет необходимость вернуться к таким инструментам, как PostSharp. Легко применять АОП к системам, которые разработаны вокруг принципов SOLID. Также рассмотрите эти два вопроса (here и here).

Смежные вопросы