Ich entwarfe derzeit eine Klassenbibliothek, die Daten an eine Web Application Graph Rendering Engine in C# liefert. Ich definiere derzeit die Schnittstellen dieser Bibliothek.Interface Design mit C# Generics
Ich habe eine IGraphData-Schnittstelle, die ich mit einem Dienst zwischenspeichern möchte, der auf den Cache zugreift, dies heißt IGraphDataCacheService und hat Methoden zum Hinzufügen und Abrufen von IGraphData-Objekten zum und vom Cache festgelegt und abgerufen. Der Cache-Dienst wird ein Singleton sein.
Ich bin verwirrt über den richtigen Weg, dies zu implementieren, so dass es nur eine Cache-Service ist die generischen IgraphData Objekte erhalten und festlegen kann.
kam ich mit auf den Punkt:
interface IGraphDataCacheService {
IGraphData<object> Get(string identifier);
void Set(IGraphData<object> graphData);}
oder dies:
T Get<T, P>(string identifier) where T : IGraphData<P>;
void Set<T,P>(T graphData) where T : IGraphData<P>;
Kann jeder ein Angebot jede Beratung helfen?
Dank
Siehe unten, wie dies mit einem statischen Initialisierer stattdessen zu erreichen. –