/// <summary> /// Create a new instance of <see cref="RuntimeScopedRepositoryMetadata"/> /// </summary> /// <param name="metadata"></param> /// <param name="instance"></param> /// <param name="accessor"></param> internal RuntimeScopedRepositoryMetadata(IRepositoryMetadata metadata, IRepository instance, TraceIdAccessor accessor = null) { metadata.CheckNull(nameof(metadata)); Instance = instance ?? throw new ArgumentNullException(nameof(instance)); TranceId = accessor?.GetTraceId(); Name = metadata.Name; ServiceType = metadata.ServiceType; ImplementType = metadata.ImplementType; }
/// <summary> /// Convert to runtime scoped repository metadata /// </summary> /// <param name="metadata"></param> /// <param name="instance"></param> /// <param name="accessor"></param> /// <returns></returns> public static RuntimeScopedRepositoryMetadata RuntimeScoped(this IRepositoryMetadata metadata, IRepository instance, TraceIdAccessor accessor = null) { metadata.CheckNull(nameof(metadata)); return(new RuntimeScopedRepositoryMetadata(metadata, instance, accessor)); }