Cet article présente principalement en détail le filtre ActionFilter du filtre asp.net core MVC, qui a une certaine valeur de référence. Les amis intéressés peuvent s'y référer
Cette série de cours expliquera l'utilisation des éléments intégrés. les filtres dans asp.net core MVC seront divisés en chapitres suivants
asp.net core MVC filter ExceptionFilter filter (1)
asp.net core MVC Filter ActionFilter filter (2)
Filtre MVC de base asp.net Filtre ResultFilter (3)
Filtre MVC de base asp.net Filtre ResourceFilter (4)
Filtre AuthorizationFilter du filtre MVC de base asp.net (5)
Introduction
Le filtre d'action sera exécuté avant et après l'action du contrôleur. Exécutez la méthode correspondante.
Implémentation d'un filtre d'action personnalisé
La personnalisation d'un filtre d'exception global nécessite l'implémentation de l'interface IActionFilter
public class ActionFilter : IActionFilter { public void OnActionExecuted(ActionExecutedContext context) { Console.WriteLine("action执行之后"); } public void OnActionExecuting(ActionExecutingContext context) { Console.WriteLine("action执行之前"); } }
IActionFilter doit implémenter deux méthodes, OnActionExecuted et OnActionExecuting. OnActionExecuting sera exécuté avant l'action et OnActionExecuted sera exécuté après l'action.
Après avoir connu le principe, nous pouvons utiliser ses fonctionnalités pour simplifier notre code. Un concept important dans MVC est la vérification du modèle. Nous définissons les contraintes du modèle, puis vérifions si le modèle est lié avec succès dans l'action. code suivant dans notre action
[HttpGet] public ActionResult Get() { if (!ModelState.IsValid) return BadRequest("参数错误!"); }
Un tel code répété augmente non seulement la complexité du code mais semble également inesthétique. Nous pouvons le compléter automatiquement dans ActionFilter
<.>public void OnActionExecuting(ActionExecutingContext context) { if (context.ModelState.IsValid) return; var modelState = context.ModelState.FirstOrDefault(f => f.Value.Errors.Any()); string errorMsg = modelState.Value.Errors.First().ErrorMessage; throw new AppException(errorMsg); }Lorsque l'erreur de liaison de modèle se produit, nous renvoyons les informations d'exception, les capturons dans le filtre d'exception ExceptionFilter dans le chapitre précédent et renvoyons les informations d'erreur au demandeur. Nous pouvons également utiliser les fonctionnalités d'ActionFilter pour enregistrer le temps d'exécution de l'action et générer un journal d'avertissement lorsque le temps d'exécution de l'action est trop lent
public class ActionFilter : IActionFilter { public void OnActionExecuted(ActionExecutedContext context) { var httpContext = context.HttpContext; var stopwach = httpContext.Items[Resources.StopwachKey] as Stopwatch; stopwach.Stop(); var time = stopwach.Elapsed; if (time.TotalSeconds > 5) { var factory = context.HttpContext.RequestServices.GetService<ILoggerFactory>(); var logger = factory.CreateLogger<ActionExecutedContext>(); logger.LogWarning($"{context.ActionDescriptor.DisplayName}执行耗时:{time.ToString()}"); } } public void OnActionExecuting(ActionExecutingContext context) { var stopwach = new Stopwatch(); stopwach.Start(); context.HttpContext.Items.Add(Resources.StopwachKey, stopwach); } }Ci-dessus Le code utilise HttpContext pour passer un Stopwach afin de calculer le temps d'exécution de l'action, et génère un journal d'avertissement lorsqu'il dépasse 5 secondes.
Enregistrer le filtre global
La méthode d'enregistrement est la même que celle d'ExceptionFinter. Recherchez le fichier Startup.cs dans le répertoire racine du système et modifiez ConfigureServices comme suitCe qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Le processus de programmation de C # dans .NET comprend les étapes suivantes: 1) l'écriture de code C #, 2) la compilation dans un langage intermédiaire (IL) et 3) l'exécution par .NET Runtime (CLR). Les avantages de C # dans .NET sont sa syntaxe moderne, son système de type puissant et son intégration serrée avec le Framework .NET, adapté à divers scénarios de développement des applications de bureau aux services Web.

C # est un langage de programmation moderne et orienté objet développé par Microsoft et dans le cadre du .NET Framework. 1.C # prend en charge la programmation orientée objet (POO), y compris l'encapsulation, l'héritage et le polymorphisme. 2. La programmation asynchrone en C # est implémentée via Async et attend des mots clés pour améliorer la réactivité des applications. 3. Utilisez LINQ pour traiter les collections de données concisement. 4. Les erreurs courantes incluent les exceptions de référence NULL et les exceptions indexes hors gamme. Les compétences de débogage comprennent l'utilisation d'un débogueur et une gestion des exceptions. 5. L'optimisation des performances comprend l'utilisation de StringBuilder et d'éviter l'emballage et le déballage inutiles.

Les stratégies de test pour les applications C # .NET comprennent les tests unitaires, les tests d'intégration et les tests de bout en bout. 1. Le test unitaire garantit que l'unité minimale du code fonctionne indépendamment, en utilisant le cadre MSTEST, NUnit ou Xunit. 2. Les tests intégrés vérifient les fonctions de plusieurs unités combinées et des données simulées couramment utilisées et des services externes. 3. Les tests de bout en bout simulent le processus de fonctionnement complet de l'utilisateur et le sélénium est généralement utilisé pour les tests automatisés.

L'entrevue avec C # Developer Senior Developer nécessite de maîtriser les connaissances de base telles que la programmation asynchrone, la LINQ et les principes de travail internes des frameworks .NET. 1. La programmation asynchrone simplifie les opérations par asynchronisation et attend pour améliorer la réactivité de l'application. 2.Linq exploite des données dans le style SQL et fait attention aux performances. 3. La CLR du cadre net gère la mémoire et la collecte des ordures doit être utilisée avec prudence.

C # .NET Les questions et réponses d'entrevue comprennent les connaissances de base, les concepts de base et l'utilisation avancée. 1) Connaissances de base: C # est un langage orienté objet développé par Microsoft et est principalement utilisé dans le framework .NET. 2) Concepts de base: la délégation et les événements permettent des méthodes de liaison dynamiques, et LINQ fournit des fonctions de requête puissantes. 3) Utilisation avancée: la programmation asynchrone améliore la réactivité et les arbres d'expression sont utilisés pour la construction de code dynamique.

C # .NET est un choix populaire pour construire des microservices en raison de son fort écosystème et de son riche soutien. 1) Créez RestulAPI à l'aide d'Asp.Netcore pour traiter la création et la requête de l'ordre. 2) Utilisez GRPC pour obtenir une communication efficace entre les microservices, définir et mettre en œuvre les services de commande. 3) Simplifiez le déploiement et la gestion via des microservices conteneurisés Docker.

Les meilleures pratiques de sécurité pour C # et .NET incluent la vérification des entrées, le codage de sortie, la gestion des exceptions, ainsi que l'authentification et l'autorisation. 1) Utilisez des expressions régulières ou des méthodes intégrées pour vérifier les entrées afin d'empêcher les données malveillantes d'entrer dans le système. 2) Encodage de sortie pour empêcher les attaques XSS, utilisez la méthode HTTPutility.htmLencode. 3) La gestion des exceptions évite la fuite d'informations, enregistre les erreurs mais ne renvoie pas d'informations détaillées à l'utilisateur. 4) Utilisez ASP.NetIdentity et l'autorisation fondée sur les réclamations pour protéger les applications contre l'accès non autorisé.

La signification du colon (':') dans le langage C: déclaration conditionnelle: séparation des expressions conditionnelles et de l'instruction Block Loop Instruction: séparation d'initialisation, d'expression conditionnelle et incrémentale Définition de macro: séparation du nom de macro et de la macro-valeur commentaire: représentant le contenu du côlon à la fin de la ligne comme dimension de tableau de commentaire: spécifiez la dimension du tableau


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Version Mac de WebStorm
Outils de développement JavaScript utiles

Dreamweaver Mac
Outils de développement Web visuel

PhpStorm version Mac
Le dernier (2018.2.1) outil de développement intégré PHP professionnel

MantisBT
Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP