根据Pac0的评论here,可以像这样注册NodaTime.SystemClock:builder.Register(_ => SystemClock.Instance).As<IClock>().SingleInstance();。
如何对NodaTime.ZonedClock执行相同的操作
发布于 2021-05-13 23:31:21
ZonedClock似乎没有像SystemClock那样的单例访问器,所以你必须调用它的构造函数。使用与SystemClock相同的方法,它将如下所示:
builder
.Register(_ => new ZonedClock(SystemClock.Instance, DateTimeZone.Utc, CalendarSystem.Gregorian))
.As<IClock>()
.SingleInstance();您可以根据需要调整参数(我添加了DateTimeZone.Utc和CalendarSystem.Gregorian作为示例)。
请记住,因为两者都实现了相同的接口(IClock),所以如果不使用键控注册或类似的方法,就不能同时注册这两个接口。但是,如果您只想使用ZonedClock,这应该不是问题。
https://stackoverflow.com/questions/67521561
复制相似问题