国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Heim Backend-Entwicklung C#.Net-Tutorial Eine gekapselte asp.net-Best?tigungscodeklasse

Eine gekapselte asp.net-Best?tigungscodeklasse

Jan 13, 2017 pm 02:20 PM

Die erste überlegung ist, ob diese Attribute des Verifizierungscodes festgelegt werden k?nnen (das hei?t, ob sie in eine Klasse gekapselt und dann durch Offenlegung ?ffentlicher Attribute und Methoden verwendet werden oder ob die Verifizierung direkt im allgemeinen Handler implementiert wird). Das Ergebnis ist leider das letztere... Der darin enthaltene Algorithmus fühlt sich ziemlich gut an, zumindest für jemanden wie mich, der sich kaum mit Algorithmen auskennt, also dachte ich darüber nach, ihn zu kapseln. Sie hat ihn dann schamlos in ihre eigene Klassenbibliothek integriert ^^

Analysieren Sie zun?chst die M?ngel in diesem Code (was sie denkt):
1. Für die prozedurale Programmierung, wenn Sie die Eigenschaften des Best?tigungscodes ?ndern m?chten, z. B. die ?nderung der Schriftgr??e, der Hintergrundfarbe usw Details müssen Sie den relevanten Code im allgemeinen Verarbeitungsprogramm finden und ?ndern. Dieser Code ist jedoch besser. Er trennt die Generierung der Best?tigungscodezeichenfolge und die Bildgenerierung in verschiedene Methoden, sodass die zu ?ndernden Stellen leichter gefunden werden k?nnen.
2. Wenn ich diese Funktion an anderen Stellen anwenden m?chte, beispielsweise in einem Winform-Programm, kann dieser Code nicht in Form einer Komponente (einer DLL) wiederverwendet, sondern kopiert, eingefügt und ge?ndert werden ...
3. Ich habe nicht festgestellt, dass der Best?tigungscode nach der Generierung gespeichert wurde (- -!)

Natürlich sind die sogenannten M?ngel relativ, das hei?t, wenn Sie Zeit dafür haben Denken Sie darüber nach und entwerfen Sie dann langsam eine Verifizierungscode-Klasse. Sie kann auf jeden Fall eine relativ gute Klasse sein, aber wenn Sie an einem Projekt arbeiten und das Projekt dringend ist, ist ein solcher Code tats?chlich leistungsf?higer. Die orientierte Entwurfsmustercode-Entkopplung ist nur eine Wolke ~~~

Der n?chste Schritt ist meine Modifikation dieses Codes. Zuerst bestimme ich, welchen Effekt ich m?chte, das hei?t, wie ich ihn verwenden m?chte, nachdem ich ihn gekapselt habe. Zun?chst hoffe ich, dass ich bei der Verwendung nur eine neue Verifizierungscode-Instanz erstellen muss (bei Bedarf kann ich verschiedene Attribute des Verifizierungscodes beliebig festlegen) und dann bestimmte Methoden dieser Instanz aufrufen kann, um Zeichenfolgen zu verwenden , Streams, Bitmap-Objekte bzw. Byte. Erhalten Sie diesen Verifizierungscode in Form eines Arrays (beachten Sie, dass diese Verifizierungscode-Klasse nicht die Funktion zum Speichern des Verifizierungscodes im Kontext enth?lt. Ich pers?nlich bin der Meinung, dass dies das Generieren des Verifizierungscodes ist und das Speichern des Verifizierungscodes im Kontext sind zwei verschiedene Funktionen. Es ist nicht erforderlich, diese Funktion in der Verifizierungscode-Klasse hinzuzufügen. In diesem Fall wird der Code im allgemeinen Verarbeitungsprogramm ?u?erst einfach. Erstellen Sie zun?chst einfach einen Best?tigungscode mit new, rufen Sie dann die Methode auf, um den Best?tigungscode in Form einer Zeichenfolge zu erhalten, und speichern Sie ihn dann morgens und nachmittags . Ob es in der Sitzung oder im Cookie vorhanden ist Es kommt nach Bedarf, und die Verifizierungscode-Klasse kümmert sich nicht darum, dann ruft sie eine andere Methode auf, um den Verifizierungscode in Form eines Byte-Arrays zu erhalten, damit das Bild über die Methode context.Response.BinaryWrite() ausgegeben werden, d. h. Das allgemeine Verarbeitungsprogramm enth?lt nur drei Codezeilen. Der aufrufende Code lautet ungef?hr wie folgt:

/// <summary> 
/// 獲取驗證碼(一般處理程序入口函數(shù)) 
/// </summary> 
/// <param name="context">當前上下文</param> 
public void ProcessRequest(HttpContext context) 
{ 
// 創(chuàng)建驗證碼 
ValidateCode validateCode = new ValidateCode(); 
// 獲取驗證碼(字符串),寫入Session 
context.Session["SomeValidateCode"] = validateCode.GetString(); 
// 輸出驗證碼(圖片) 
context.Response.BinaryWrite(validateCode.GetByteArray()); 
}

PS: Ich erinnere mich, dass der Code zu Beginn meiner Arbeit sehr schlecht geschrieben war (schlechter als jetzt, als ich ihn direkt verwendete). Ich habe nie darüber nachgedacht, den Code zu ?ndern oder zu kapseln, das hat mir mein Meister damals beigebracht und ich war sehr beeindruckt. Ich pers?nlich bin der Meinung, dass es nichts Falsches ist, den Code anderer Leute zu verwenden, um zumindest die Benutzerfreundlichkeit des Codes zu beweisen. Darüber hinaus sind einige Dinge nicht so gut, wie andere denken Wenn Sie sie nutzen m?chten, dürfen Sie den Code anderer Personen nicht blind verwenden. Nehmen Sie am besten die erforderlichen ?nderungen oder Kapselungen entsprechend Ihrer tats?chlichen Situation vor, auch wenn es sich nur um eine einfache Ebene handelt. Wenn das Projekt dringend ist, ist es natürlich Zeitverschwendung. Kurz gesagt, denken Sie nicht darüber nach, verwenden Sie es, sobald Sie es erhalten, und stellen Sie zumindest den Schlüsselcode oder die Gesamtstruktur sicher Der Code ist klar.

Weitere Artikel zum Thema gekapselter asp.net-Best?tigungscode finden Sie auf der chinesischen PHP-Website!

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1488
72
Erstellen und Anwenden benutzerdefinierter Attribute in C# Erstellen und Anwenden benutzerdefinierter Attribute in C# Jul 07, 2025 am 12:03 AM

Customattributes sind Mechanismen, die in C# zum Anbringen von Metadaten an Codeelemente verwendet werden. Seine Kernfunktion besteht darin, das System zu erben. 2. Beim Erstellen müssen Sie eine aus Attribut geerbte Klasse definieren und Attributeusage verwenden, um das Anwendungsziel anzugeben. 3. Nach der Anwendung k?nnen Sie Funktionsinformationen durch Reflexion erhalten, z. B. die Verwendung von Attribut.getCustomatTribute ();

Entwerfen unver?nderlicher Objekte und Datenstrukturen in C# Entwerfen unver?nderlicher Objekte und Datenstrukturen in C# Jul 15, 2025 am 12:34 AM

Der Kern der Gestaltung unver?nderlicher Objekte und Datenstrukturen in C# besteht darin, sicherzustellen, dass der Zustand des Objekts nach der Erstellung nicht ge?ndert wird, wodurch die Sicherheit der Threads verbessert und Fehler verringert wird, die durch Zustands?nderungen verursacht werden. 1. Verwenden Sie Readonly Felder und kooperieren Sie mit der Konstruktorinitialisierung, um sicherzustellen, dass die Felder nur w?hrend der Konstruktion zugewiesen werden, wie in der Personklasse gezeigt. 2.. Verwenden Sie den Sammelart und verwenden Sie unver?nderliche Sammelschnittstellen wie ReadonlyCollection oder ImmutableList, um die externe Modifikation interner Sammlungen zu verhindern. 3.. Verwenden Sie den Datensatz, um die Definition des unver?nderlichen Modells zu vereinfachen und standardm??ig schreibgeschützte Attribute und Konstruktoren zu generieren, die für die Datenmodellierung geeignet sind. V.

Umgang mit gro?en Datens?tzen effizient mit C# Umgang mit gro?en Datens?tzen effizient mit C# Jul 06, 2025 am 12:10 AM

Bei der Verarbeitung gro?er Datenmengen kann C# durch Streaming, parallele asynchrone und geeignete Datenstrukturen effizient sein. 1. Verwenden Sie die Streaming -Verarbeitung, um einzeln oder in Stapeln wie StreamReader oder Efcores asasyncenumerable zu lesen, um Speicherüberlauf zu vermeiden. 2. Verwenden Sie parallel (parallel.foreach/plinq) und asynchron (asynchron/wartet auf Task.run), um die Anzahl der Parallelit?t zu steuern und auf die Sicherheit der Threads zu achten. A. W?hlen Sie effiziente Datenstrukturen (wie W?rterbuch, Hashset) und Serialisierungsbibliotheken (wie System.Text.json, MessagePack), um die Suchzeit und die Serialisierungsaufwand zu verkürzen.

Mastering C# Reflection und seine Anwendungsf?lle Mastering C# Reflection und seine Anwendungsf?lle Jul 06, 2025 am 12:40 AM

Reflexion ist eine Funktion in C# für die dynamische Analyse und ?nderung von Programmstrukturen zur Laufzeit. Zu den Kernfunktionen geh?ren das Erhalten von Typinformationen, das Erstellen von Objekten, das Aufrufen von Methoden und das überprüfen der Assemblierung. Zu den gemeinsamen Anwendungsszenarien geh?ren: 1. Binden Sie das Datenmodell automatisch, z. B. die Zuordnung von W?rterbuchdaten an Klasseninstanzen; 2. Implementieren Sie das Plug-in-System, laden externe DLLs und rufen Sie seine Schnittstelle an. 3. Unterstützung automatisierter Tests und Protokollierung, z. B. die Ausführung bestimmter Feature -Methoden oder automatisch Aufzeichnung von Protokollen. Wenn Sie es verwenden, müssen Sie auf die Leistungsaufwand, die Korruption und Schwierigkeiten des Debuggens berücksichtigen. Zu den Optimierungsmethoden geh?ren das Caching -Typinformationen, die Verwendung von Delegierten zur Verbesserung der Anrufeffizienz und das Generieren von IL -Code. Die rationale Verwendung von Reflexion kann die Flexibilit?t und Vielseitigkeit des Systems verbessern.

Schreiben von Wartungsbetrag und Testsable C# Code Schreiben von Wartungsbetrag und Testsable C# Code Jul 12, 2025 am 02:08 AM

Der Schlüssel zum Schreiben von C# Code ist die Wartbarkeit und Testbarkeit. Verantwortungsbewusst aufteilen, das Prinzip der einzigen Verantwortung (SRP) befolgen und Datenzugriff, Gesch?ftslogik und Anfrage nach Repository, Service und Controller anwenden, um die strukturelle Klarheit und die Testen der Effizienz zu verbessern. Mehrzweck-Schnittstelle und Abh?ngigkeitsinjektion (DI) erleichtern die Ersatzimplementierung, die Erweiterung von Funktionen und Simulationstests. Unit -Tests sollten externe Abh?ngigkeiten isolieren und Scheinwerkzeuge verwenden, um die Logik zu überprüfen, um eine schnelle und stabile Ausführung zu gew?hrleisten. Standardisieren Sie die Benennung und Aufteilung kleiner Funktionen, um die Lesbarkeit und Wartungseffizienz zu verbessern. Wenn Sie sich an die Prinzipien der klaren Struktur, klare Verantwortlichkeiten und testfreundliche Grunds?tze halten, k?nnen die Entwicklungseffizienz und die Codequalit?t erheblich verbessern.

Erstellen benutzerdefinierter Middleware in ASP.NET CORE C# Erstellen benutzerdefinierter Middleware in ASP.NET CORE C# Jul 11, 2025 am 01:55 AM

Erstellen Sie benutzerdefinierte Middleware in ASP.NetCore, das durch Schreiben von Klassen und Registrierung implementiert werden kann. 1. Erstellen Sie eine Klasse, die die Invokeasync -Methode enth?lt, httpcontext und RequestDelegateNext behandeln. 2. Registrieren Sie sich bei Usemiddleware in Program.cs. Middleware eignet sich für allgemeine Vorg?nge wie Protokollierung, Leistungsüberwachung, Ausnahmebehandlung usw. Im Gegensatz zu MVC -Filtern wirkt sie auf die gesamte Anwendung und stützt sich nicht auf den Controller. Die rationale Verwendung von Middleware kann die strukturelle Flexibilit?t verbessern, sollte jedoch die Leistung beeintr?chtigen.

Tiefe Eintauchung in C# Generika -Einschr?nkungen und Kovarianz Tiefe Eintauchung in C# Generika -Einschr?nkungen und Kovarianz Jul 12, 2025 am 02:00 AM

Generische Einschr?nkungen werden verwendet, um die Typparameter einzuschr?nken, um spezifische Verhaltens- oder Vererbungsbeziehungen sicherzustellen, w?hrend die Kovariation Subtyp -Konvertierung erm?glicht. Zum Beispiel stellt Icomparable sicher, dass T vergleichbar ist; Kovariation wie IEnumerable erm?glicht es, dass Ienumerable in iEnumerable umgewandelt wird, aber nur gelesen wird und kann nicht ge?ndert werden. Gemeinsame Einschr?nkungen umfassen Klasse, Struktur, New (), Basisklasse und Schnittstelle, und mehrere Einschr?nkungen werden durch Kommas getrennt; Die Kovariation erfordert das Out -Keyword und gilt nur für Schnittstellen und Delegierte, was sich vom Wechselrichter unterscheidet (in Schlüsselwort). Beachten Sie, dass die Kovarianz keine Klassen unterstützt, nicht nach Belieben konvertiert werden kann und Einschr?nkungen die Flexibilit?t beeinflussen k?nnen.

Best Practices für die Verwendung von LINQ in C# effektiv Best Practices für die Verwendung von LINQ in C# effektiv Jul 09, 2025 am 01:04 AM

Die folgenden Punkte sollten bei der Verwendung von LINQ: 1 befolgt werden. Bei Verwendung deklarativer Datenoperationen wie Filterung, Konvertierung oder Aggregation von Daten werden die Priorit?t vorliegt, um die Zwangsbenutzung in Szenarien mit Nebenwirkungen oder leistungskritischen Szenarien zu vermeiden. 2. Verstehen Sie die Merkmale der verz?gerten Ausführung, die ?nderungen des Quellsatzsatzes k?nnen zu unerwarteten Ergebnissen führen, und Verz?gerungen oder Ausführungen sollten gem?? den Anforderungen ausgew?hlt werden. 3. Achten Sie auf Leistung und Speicheraufwand, Kettenaufrufe k?nnen Zwischenobjekte erzeugen, und leistungsempfindliche Codes k?nnen durch Schleifen oder Spannweiten ersetzt werden. 4. Halten Sie die Abfrage pr?zise und leicht zu lesen und teilen Sie die komplexe Logik in mehrere Schritte auf, um überm??ige Verschachtelung und Mischen mehrerer Vorg?nge zu vermeiden.

See all articles