Size: a a a

2020 February 27

vl

vova lantsov in pro.net
Lyserg Ditel
Добрый день, не подскажите, как в DI кора  можно зарегистрировать фабрику ?

Условно:

interface IFactory {
   object Create(string param)

}

class Factory : IFactory {
 private readonly IServiceScopeFactory _serviceScope

 ctor(_serviceScope)

 object Create(string param) {
       using var scope = _serviceScope.CreateScope();
           return scope.ServiceProvider.GetServices<IBar>()
               .First(service => service.Param == param);
 }
}

inetrface IFoo {}

class Foo : IFoo {
 private readonly IFactory _factory

 ctor(_factory)
}

Как зарегистрировать IFactory, IFoo, IBar ?
services.AddSingleton<IFactory, Factory>();
источник

IC

Ilya Chernoudov in pro.net
Ayrat Hudaygulov
Именно. Для этого дейттаймоффсет не нужен
проблема в том, как к тебе приходит информация, если ты коммтишься, что всё что тебе приходит - utc то тогда да, можно юзать date time, но если нет?
источник

LD

Lyserg Ditel in pro.net
vova lantsov
services.AddSingleton<IFactory, Factory>();
Отлично, а Func регистрировать не нужно ? Да и я пробовал так, падает мисматчем лайфтайма, ибо я хочу IFoo, IBar - scoped
источник

AH

Ayrat Hudaygulov in pro.net
Ilya Chernoudov
ЩИТО? ты пишешь в utc
Это все здорово пока тебе не надо сопоставлять события из двух временных зон по их времени.
источник

vl

vova lantsov in pro.net
Lyserg Ditel
Отлично, а Func регистрировать не нужно ? Да и я пробовал так, падает мисматчем лайфтайма, ибо я хочу IFoo, IBar - scoped
Func не нужно. По поводу падает: скрин в студию
источник

β🎀

βλαδιμιρ 🎀 🌎🔫 in pro.net
Lyserg Ditel
Отлично, а Func регистрировать не нужно ? Да и я пробовал так, падает мисматчем лайфтайма, ибо я хочу IFoo, IBar - scoped
AddTrancient
источник

β🎀

βλαδιμιρ 🎀 🌎🔫 in pro.net
синглтоны не нужны
источник

IC

Ilya Chernoudov in pro.net
Ayrat Hudaygulov
Это все здорово пока тебе не надо сопоставлять события из двух временных зон по их времени.
в чём проблема, если время utc известно?э
источник

AH

Ayrat Hudaygulov in pro.net
Ilya Chernoudov
в чём проблема, если время utc известно?э
Ну а дальше его надо хранить
источник

AH

Ayrat Hudaygulov in pro.net
Не в утс
источник

M

Mary in pro.net
Ayrat Hudaygulov
Да ну, тоже не панацея. Знать оффсет недостаточно, нужна таймзона, а её нет.

DateTimeOffset говна самовар.

Unpopular opinion:
Если вы пользуетесь UTC, то вам должно быть похуй DateTime или DateTimeOffset.
Если вам важно знать время на клиентах, то DateTimeOffset вам не поможет, или вы не понимаете как работают таймзоны. И тут только NodaTime выручит.
источник

IC

Ilya Chernoudov in pro.net
Ayrat Hudaygulov
Ну а дальше его надо хранить
дак храни его в utc
источник

IC

Ilya Chernoudov in pro.net
Ayrat Hudaygulov
Не в утс
но зачем?
источник

LD

Lyserg Ditel in pro.net
Что именно должно быть Transient ?
источник

IC

Ilya Chernoudov in pro.net
ну или сохрани в datetime2
источник

AH

Ayrat Hudaygulov in pro.net
Ilya Chernoudov
но зачем?
Теряешь информацию о том когда это было
источник

β🎀

βλαδιμιρ 🎀 🌎🔫 in pro.net
Lyserg Ditel
Что именно должно быть Transient ?
services.AddTrancient<IFactory, Factory>();
источник

AH

Ayrat Hudaygulov in pro.net
Ты только инстанс времени имеешь для сравнения, а не время
источник

β🎀

βλαδιμιρ 🎀 🌎🔫 in pro.net
желательно все
источник

AH

Ayrat Hudaygulov in pro.net
Ты не знаешь что это случилось в 17 по Москве
источник