IDGen.cs
1.09 KB
using NCC.Dependency;
using System;
namespace NCC.DistributedIDGenerator
{
/// <summary>
/// ID 生成器
/// </summary>
[SuppressSniffer]
public static class IDGen
{
/// <summary>
/// 生成唯一 ID
/// </summary>
/// <param name="idGeneratorOptions"></param>
/// <param name="serviceProvider"></param>
/// <returns></returns>
public static object NextID(object idGeneratorOptions, IServiceProvider serviceProvider = default)
{
return App.GetService<IDistributedIDGenerator>(serviceProvider ?? App.RootServices).Create(idGeneratorOptions);
}
/// <summary>
/// 生成连续 GUID
/// </summary>
/// <param name="serviceProvider"></param>
/// <returns></returns>
public static Guid NextID(IServiceProvider serviceProvider = default)
{
var sequentialGuid = App.GetService(typeof(SequentialGuidIDGenerator), serviceProvider ?? App.RootServices) as IDistributedIDGenerator;
return (Guid)sequentialGuid.Create();
}
}
}