Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 16422|Antwoord: 0

[Communicatie] .NET Core Bestandsproviders

[Link kopiëren]
Geplaatst op 28-01-2019 15:13:10 | | |
Bestandsprovider-abstractie
File Providers vormen een abstractielaag bovenop het bestandssysteem. De belangrijkste interface is IFileProvider. IFileProvider biedt methoden voor het verkrijgen van bestandsinformatie (IFileInfo), mapinformatie (IDirectoryContents) en het instellen van wijzigingsmeldingen (door gebruik te maken van een IChangeToken).

De IFileInfo-interface biedt methoden en eigenschappen voor het manipuleren van individuele bestanden en mappen. Het heeft twee booleaanse eigenschappen, Exists en IsDirectory, en twee eigenschappen voor twee profielen, Name en Length (per byte), en bevat ook een LastModified date-eigenschap. Je kunt de inhoud van het bestand ook lezen via de CreateReadStream-methode.

File Provider-implementatie
Er zijn drie implementaties van de IFileProvider om uit te kiezen: fysiek, embedded en composiet. Het fysieke type wordt gebruikt om bestanden in het daadwerkelijke systeem te benaderen. Embedded wordt gebruikt om toegang te krijgen tot bestanden die in een assembly zijn ingebed. Het samengestelde type is een combinatie van de eerste twee methoden.

PhysicalFileProvider
PhysicalFileProvider biedt toegang tot het fysieke bestandssysteem. Het encapsuleert het System.IO.File-type, dat alle paden naar een map en zijn submappen omvat. Dit type scope beperkt de toegang tot een map en haar subdirectories, waardoor bewerkingen buiten scope geen toegang krijgen tot het bestandssysteem. Bij het instansiëren van zo'n provider moet je deze voorzien van een directorypad dat de server kan gebruiken als basispad voor alle verzoeken die door deze provider worden gedaan (wat toegangsverzoeken buiten het pad beperkt). In een ASP.NET Core-applicatie kun je direct een PhysicalFileProvider-provider instantiëren, of je kunt een IFileProvider-interface aanvragen door constructor-afhankelijkheidsinjectie te gebruiken in de controller en service. Dit laatste resulteert in oplossingen die vaak flexibeler en makkelijker te testen zijn.

Het maken van een PhysicalFileProvider is eigenlijk heel eenvoudig: materialiseer hem gewoon en geef hem een fysiek pad. Je kunt vervolgens de inhoud door de map bladeren of subpaden aanbieden om informatie over een specifiek bestand te krijgen.
Pas de ConfigureServices()-methode van de Startup-klasse aan om de services te registreren die nodig zijn om lokale bestanden te benaderen, en voeg deze vervolgens toe aan de middleware via constructor injection in de middleware, zodat je het toegangspad van de bestanden op één plek kunt controleren (dus wanneer de applicatie start)






Vorig:Unieke sleutelbeperkingen voor meerdere kolommen in het Entity Framework (Unieke Sleutel constr ...
Volgend:C# generieke voorbeelden worden in detail uitgelegd
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com