Hur man arbetar med bibliografi i .NET

Hur man arbetar med bibliografi i .NET

Den här guiden visar hur man bygger citeringskälldata bakom Word’s bibliografifunktion i Aspose.Words FOSS för .NET, med Source, Contributor, Person, och Corporate klasser i Aspose.Words.Bibliography namnrymd. Den täcker att skapa källposter, välja rätt källtyp, tilldela enskilda och företagsbidragsgivare, och lägga till källor så CITATION and BIBLIOGRAPHY fält kan lösa dem.

Steg-för-steg-guide

Steg 1: Installera paketet

Aspose.Words FOSS för .NET publicerar ännu inte ett NuGet paket – bygg biblioteket från källkod istället. Klona https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git, bygg sedan Aspose.Words.sln i Release-konfiguration med .NET SDK och referera den resulterande Aspose.Words-samlingen från ditt projekt. Biblioteket riktar sig mot .NET Standard 2.0, så det körs på .NET Framework 4.6.2+ och .NET 6/8/10.


Steg 2: Importera nödvändiga klasser

Lägg till en using Aspose.Words;-direktiv för Document, och en using Aspose.Words.Bibliography;-direktiv för Source, SourceType, Contributor, ContributorCollection, Person, PersonCollection och Corporate.


Steg 3: Nå dokumentets bibliografidata

Document.Bibliography returnerar en Bibliography-instans. Dess Sources-egenskap är en IList<Source> som innehåller varje källpost som är tillgänglig för dokumentet, och BibliographyStyle registrerar namn på citatstilen – till exempel APA eller MLA – som ska tillämpas när ett BIBLIOGRAPHY-fält uppdateras.


Steg 4: Skapa en källpost

Konstruera en Source med Source(tag, sourceType): Tag är den korta identifieraren som FieldCitation.SourceTag och FieldBibliography.SourceTag matchar mot senare, och SourceType är ett enum-värde som identifierar typen av källa – Book, BookSection, JournalArticle, ArticleInAPeriodical, ConferenceProceedings, Report, Patent, Case, InternetSite, DocumentFromInternetSite, Interview, Film, SoundRecording, Performance, Art, Electronic eller Misc. Ge varje Source en unik Tag – det är det enda värdet som citatfälten använder för att hitta rätt post.


Steg 5: Fyll i fält för den valda källtypen

Utöver Title och ShortTitle visar Source tiotals kategori-specifika fält – fyll i endast de som är relevanta för den valda SourceType. Bokkällor använder BookTitle, Edition, NumberVolumes, Volume, Pages och ChapterNumber. Periodiskällor använder JournalName, PeriodicalTitle, PublicationTitle och Issue. Webbkällor använder InternetSiteTitle, Url, DayAccessed, MonthAccessed och YearAccessed. Juridiska källor använder CaseNumber, AbbreviatedCaseNumber, Court och Reporter. Inspelnings- och sändningskällor använder AlbumTitle, Broadcaster, BroadcastTitle, RecordingNumber, Medium, ProductionCompany, Distributor, Station och Theater. Allmänna fält gäller för de flesta källtyper: Publisher, City, StateOrProvince, CountryOrRegion, Year, Month, Day, Comments, Guid, Doi, Version, RefOrder och Lcid.


Steg 6: Tilldela enskilda medverkande

Source.Contributors returnerar en ContributorCollection med en egenskap per bidragsgivarroll – Author, Editor, Translator, Compiler, Composer, Conductor, Counsel, Director, Interviewee, Interviewer, Inventor, Performer, Producer, Writer, Artist och BookAuthor – var och en typad som den abstrakta basklassen Contributor. Tilldela en Person (konstruerad från Last, First, Middle) till en roll-egenskap för en enskild namngiven individ.


Steg 7: Tilldela flera eller företagsbidragsgivare

När en roll har mer än en individuell bidragsgivare, tilldela en PersonCollection istället för en enda Person – PersonCollection härstammar också från Contributor och implementerar IEnumerable<Person>, med Add(), Remove(), RemoveAt(), Clear(), Contains() och Count för att hantera dess medlemmar. När bidragsgivaren är en organisation snarare än en person, tilldela en Corporate (konstruerad från dess Name) till roll-egenskapen istället. Person, PersonCollection och Corporate uppfyller alla samma Contributor-typade roll-egenskap, så välj den som passar källan.


Steg 8: Lägg till källan så att citeringsfält kan lösa den

Lägg till varje slutförd Source to Document.Bibliography.Sources innan du uppdaterar någon CITATION or BIBLIOGRAPHY fält som refererar till den — en källa som konstruerades men aldrig lades till har inget för det refererande fältet att lösa upp mot. Source poster levererar bara data; de renderar inte citat- eller bibliografitext själva. Rendering sker via FieldCitation and FieldBibliography, täckt i den länkar och referensguide.

Vanliga problem och lösningar

Ett CITATION- eller BIBLIOGRAPHY-fält löser sig inte Det Source.Tag matchar inte exakt fältets SourceTag. Bekräfta att taggarna matchar, och att den Source har faktiskt lagts till i Document.Bibliography.Sources.

Fel bidragsgivartyp tilldelad en roll En Person tilldelades där flera bidragsgivare finns, eller tvärtom. Använd PersonCollection för flera individer i en roll, Person för en enskild individ, och Corporate för en organisation.

Källfält ser inkonsekventa ut för sin typ Fält för en annan SourceType fylldes – till exempel webbfält som Url and DayAccessed satt på en Book källa. Fyll endast i fält som är relevanta för det valda SourceType.

En källa med flera författare visar bara ett namn En enda Person tilldelades till Author istället för en PersonCollection. Skapa en PersonCollection, lägg till varje Person with Add(), och tilldela samlingen till roll-egenskapen.

BibliographyStyle matchar inte det citeringsformat jag förväntar mig Bibliography.BibliographyStyle registrerar vilket citeringsstilsnamn som ska tillämpas – håll det konsekvent med hur dokumentets FieldCitation fält förväntar sig att deras utdata formateras.

Vanliga frågor

Hur lägger jag till en bokkälla med en enda författare?

Skapa en Source med SourceType.Book, ange BookTitle, Publisher, Year och relaterade fält, tilldela sedan en Person till Source.Contributors.Author.

Hur lägger jag till en källa med flera författare?

Tilldela en PersonCollection – fylld med Person-instanser via Add() – till den relevanta ContributorCollection roll-egenskapen, till exempel Author.

Hur citerar jag en organisation istället för en individ?

Tilldela en Corporate-instans, konstruerad med organisationens Name, till ContributorCollection-roll-egenskapen istället för en Person eller PersonCollection.

Var visas Source-poster faktiskt i det renderade dokumentet?

De renderas inte själva – FieldCitation and FieldBibliography fält renderar innehåll byggt från dem, matchade av SourceTag. Se länkar och referenser guide.

Vad identifierar en Source-post för fälten som citerar den?

Source.Tag, satt i Source(tag, sourceType)-konstruktorn – FieldCitation.SourceTag och FieldBibliography.SourceTag matchar mot detta exakta värde.

Se även

 Svenska