CSharp 12

Interceptors

Kan erstatte, eller intercepte, deler av koden. Kan være nyttig som et alternativ til mocking. InterceptsLocation attributten er ment å genereres av kode generatorer, ikke skrevet for hånd.

public static class GeneratedCode{
	[InterceptsLocation("""/User/Foo/code/Movies/MovieValidator.cs""", 25, 31)]//File location, line, column
	public static Task<Movie?> MockGetBySlugAsync(this MoveiRepository repository, string slug){
		return Task.FromResult<Movie>(null);
	}
}
public class MovieValidator {
	private async Task<bool> ValidateSlug(Movie movie, string slug)
	{
		//line 25, method call at column 31
		var existingMovie = await _movieRepo.GetBySlugAsync(slug);
		if(existingMovie is not null){
			return true;
		}
		return false;
	} 
}