Я вижу два разных сообщения SO, посвященных одной и той же теме, но ни в одном из них нет ответа, который я ищу:
- Перехват базового класса Microsoft Unity
Это говорит мне о том, что я уже знаю; информации все еще недостаточно. - Перехват Unity в производных классах
Это очень подробно, но относится к конфигурации Unity, а не к императивной форме, которую я использую .
У меня есть эти классы:
Код: Выделить всё
public abstract class RootController
{
[Report]
public abstract void Action();
}
public class MyController
{
public void Action()
{
Console.WriteLine("hey");
}
}
Код: Выделить всё
container.AddNewExtension();
container.RegisterInstance(typeof(ReportAttributePolicy).AssemblyQualifiedName, new ReportAttributePolicy());
container.RegisterType(
new Interceptor(),
new InterceptionBehavior
()
);
Очевидно, я пытаюсь реализовать следующий сценарий:
Код: Выделить всё
var yup = container.Resolve();
Когда я выполняю приведенный выше код, ни один из методов моего ReportAttributePolicy не выполняется. Это значит, что у меня нет шанса сотворить волшебство. Если я не имею дело с примером наследования, то все работает нормально.
Как мне заставить его работать с наследованием?
Подробнее здесь: https://stackoverflow.com/questions/256 ... base-class
Мобильная версия