Я пытаюсь добавить перехватчик для всех моих контроллеров. Я использую Simple Injector и asp.net MVC.
При попытке этого примера: https://simpleinjector.readthedocs.io/en/latest/InterceptionExtensions.html все работало, когда я хотел добавить перехватчик в интерфейс. Проблема начинается с контроллеров, поскольку они имеют конкретный тип, а не интерфейсы ...
private static void ThrowIfServiceTypeNotInterface(ExpressionBuiltEventArgs e) {
// NOTE: We can only handle interfaces, because
// System.Runtime.Remoting.Proxies.RealProxy only supports interfaces.
if (!e.RegisteredServiceType.IsInterface) {
throw new NotSupportedException("Can't intercept type " +
e.RegisteredServiceType.Name + " because it is not an interface.");
}
}
В приведенной выше реализации есть явное ограничение только для интерфейсов, хотелось бы понять, почему?
Кто-нибудь имеет опыт добавления перехватчиков в SimpleInjector для контроллеров / конкретных типов?