Struct Cacheable<TCachedEntity, TDownloadableEntity, TRelationship, TId>
- Namespace
- Kook
- Assembly
- Kook.Net.Core.dll
表示一个可延迟加载的缓存实体。
public readonly struct Cacheable<TCachedEntity, TDownloadableEntity, TRelationship, TId> where TCachedEntity : IEntity<TId>, TRelationship where TDownloadableEntity : IEntity<TId>, TRelationship where TId : IEquatable<TId>
Type Parameters
TCachedEntity
可延迟加载的缓存实体的类型。
TDownloadableEntity
可从 API 请求下载的实体的类型。
TRelationship
由
TCachedEntity
和TDownloadableEntity
共同继承或实现的类型。TId
可延迟加载的缓存实体的 ID 的类型。
- Inherited Members
Properties
HasValue
获取此实体是否已缓存。
public bool HasValue { get; }
Property Value
Id
获取此实体的唯一标识符。
public TId Id { get; }
Property Value
- TId
Value
如果可以从缓存中获取实体,则获取该实体。
public TCachedEntity? Value { get; }
Property Value
- TCachedEntity
Remarks
此属性不保证非空;在无法从缓存中拉取实体的情况下,此属性返回 null
。
Methods
DownloadAsync()
将此实体下载到缓存中。
public Task<TDownloadableEntity?> DownloadAsync()
Returns
- Task<TDownloadableEntity>
一个表示异步下载操作的任务。任务结果包含下载的实体;如果无法通过 API 请求下载实体,或下载的实体无法转换为
TDownloadableEntity
,则为null
。
GetOrDownloadAsync()
如果实体已存在于缓存中,则返回该实体;否则下载该实体并返回。
public Task<TRelationship?> GetOrDownloadAsync()
Returns
- Task<TRelationship>
一个表示异步获取或下载操作的任务。任务结果包含所获取或下载的实体;如果无法通过 API 请求下载实体,或下载的实体无法转换为
TDownloadableEntity
,则为null
。