Sobes.tech
Junior — Middle

Kunt u uitleggen wat het concept van interceptor in programmeren inhoudt?

sobes.tech AI

Antwoord van AI

Interceptor (interceptor) is een programmeerpatroon dat het mogelijk maakt om methodenaanroepen of berichtverwerking te onderscheppen om extra logica toe te voegen zonder de hoofdcode te wijzigen.

In C# wordt de interceptor vaak gebruikt in de context van aspectgeoriënteerd programmeren (AOP) of bij het werken met proxy-objecten. Bijvoorbeeld, methodenaanroepen kunnen worden onderschept voor logging, toegangscontrole, caching of foutafhandeling.

Voorbeeld van het gebruik van een interceptor met Castle DynamicProxy:

public class LoggingInterceptor : IInterceptor
{
    public void Intercept(IInvocation invocation)
    {
        Console.WriteLine($"Aanroep van methode {invocation.Method.Name} gestart");
        invocation.Proceed(); // originele methode aanroepen
        Console.WriteLine($"Aanroep van methode {invocation.Method.Name} voltooid");
    }
}

// Proxy met interceptor maken
var proxyGenerator = new ProxyGenerator();
var myService = proxyGenerator.CreateInterfaceProxyWithTarget<IMyService>(new MyService(), new LoggingInterceptor());

myService.SomeMethod();

Op deze manier maakt de interceptor het mogelijk om extra gedrag toe te voegen rondom methodenaanroepen zonder de implementatie ervan te wijzigen.