Da nun intern nicht mehr mit Dateipfaden, sondern mit den Repository-IDs gearbeitet wird ist deren Aufbau wichtig zu verstehen. Somit setzt sich eine Repository-ID als Zeichenkette mit folgendem Aufbau aus zwei Teilen zusammen:
Prefix: repository://
ID: {53F875F0-6177-8AD5-01B44E3A9867}
Beispiel: repository://{53F875F0-6177-8AD5-01B44E3A9867}
Allen Funktionen wie bspw. Design, Print, Export, ProvideInformationReadOnlyBase.RepositoryId in WebReportDesignerController.OnProvideListLabel u.v.m, denen bisher der Dateipfad des Projekts übergeben wurde (bspw. C:\Reports\Invoice.lst), wird stattdessen nun die vollständige Repository-ID (bspw. repository://{53F875F0-6177-8AD5-01B44E3A9867}) übergeben:
// Ohne Repository-Modus:
LL.Design(LlProject.List, "C:\Reports\Invoice.lst")
// Mit Repository-Modus – gilt auch für Export() bzw. Print():
LL.FileRepository = new MyCustomRepository(…);
LL.Design(LlProject.List, "repository://{53F875F0-6177-8AD5-01B44E3A9867}")
Auch alle Funktionen der Implementierung des Interfaces IRepository bekommen als Parameter die vollständige Repository-ID (Prefix + ID) übergeben. Aus "Dateien" werden im Repository-Modus "Repository-Items" (Elemente) und aus den Dateinamen werden "Repository-IDs". Jedes Repository-Item (Element) besitzt neben der ID einen Typ, einen Zeitstempel und einen Bezeichner (String mit variabler Länge, der interne Informationen enthält). Ihre Repository-Implementierung muss neben dem Dateiinhalt also mindestens diese vier Informationen für jedes Repository-Item (Element) speichern und abrufen können.
Sie finden eine einfache Repository-Implementierung in den ASP.NET-Beispielprojekten (Klasse SQLiteFileRepository), die ein Repository mit einer SQLite-Datenbank als Datenspeicher bereitstellt.
Detailliertere Beschreibungen der zu implementierenden Methoden im IRepository-Interface entnehmen Sie bitte der .NET-Onlinehilfe (combit.ListLabel31.chm).