Я пытаюсь выяснить, есть ли какой-нибудь способ создать RedisClient
, который имеет функциональность RedisTypedClient
, но может определить ключ URN с помощью простой строки вместо передачи типа.Например, в данный момент мы создаем IRedisTypedClient следующим образом:
var redisProjectClient = _redisClientsManager.GetClient().As<Project>()
Затем мы можем сохранять / извлекать связанные сущности на основе типов, которые мы знаем о :
var files = redisProjectClient.GetRelatedEntities<File>(projectId);
Однако мы хотим управлять простыми данными JSON объектов из внешних служб (выбираемых конечными точками HTTP API).Эти объекты полезной нагрузки будут типами, о которых мы не будем знать в c #, но предоставят имена схем / типов, которые мы хотим использовать для управления отношениями, как мы делаем в клиенте с типом redis.Я не могу понять, возможно ли это в настоящее время без необходимости вручную управлять всеми дополнительными функциями, которые делают типизированных клиентов такими хорошими:
- Идентификационный список для сущностей этого типа
- Возможность извлекать / обновлять объекты, связанные с объектом
GetNextSequence
для следующего идентификатора
Они не доступны в квартире IRedisClient
, поэтому я хочу сделать что-то вродеthis:
var file = "{...}" // JSON object provided by external service
// We will know it's a "Project" type with a "projectID" from the JSON payload data:
var redisProjectClient = _redisClientsManager.GetClient().As("Project");
redisProjectClient.StoreRelatedEntities("File", projectId, file);
// ...
var files = redisProjectClient.GetRelatedEntities("File", projectId);
Есть идеи, если это возможно, или как создать клиент такого типа?