
Vasily
27.02.2018
13:54:04

Friedrich
27.02.2018
13:54:20
Смотри, можно научить провайдер, чтоб он строку подключения читал из файла сам.
А путь к файлу будет литералом.

Google

Evgeniy
27.02.2018
13:54:50

Friedrich
27.02.2018
13:54:56
Это прям прозрачно внедряется и не ломает существующий код.

Vlad
27.02.2018
13:55:11
А вот нифига. :(
Вообще в идеале бы sql provider отдавать схему в виде sql скрипта в build time
Подумал
Ведь он все равно на живую бд берет зависимость

Evgeniy
27.02.2018
13:55:56

Vasily
27.02.2018
13:56:20
А это вроде старая тема вызова провайдера из провайдера :)

Evgeniy
27.02.2018
13:56:38

Vasily
27.02.2018
13:56:48
Проблема-то в другом, имхо
На билд машине должна быть идентичная боевой база развернута

Friedrich
27.02.2018
13:57:08

Evgeniy
27.02.2018
13:57:23

Google

Friedrich
27.02.2018
13:57:30

Evgeniy
27.02.2018
13:58:13
@fvnever tl;dr StringReader. Но нужно бы еще починить провайдеры в FSharp.Configuration

Vasily
27.02.2018
13:58:14
Ну фишка в том, что невозможно при компиляции прочитать строку из файла
Как я понимаю
И записать ее литералом

Evgeniy
27.02.2018
13:58:46

Friedrich
27.02.2018
13:59:01

Evgeniy
27.02.2018
13:59:03
Я картинку даже нарисовал!

Vasily
27.02.2018
13:59:25
@gsomix это работает немного по-другому же

Friedrich
27.02.2018
13:59:38
Да не, погодите, вроде как надо работает.
Значит, то, что я навыдумывал, не требуется.

Evgeniy
27.02.2018
13:59:58
Я вон потом эту строку передаю в JsonProvider!

Vasily
27.02.2018
14:00:19
Тогда это в другой сборке должно быть, не?
Или там последовательная компиляция норм работает?

Roman
27.02.2018
14:01:29

Friedrich
27.02.2018
14:01:37

Vlad
27.02.2018
14:02:29

Roman
27.02.2018
14:03:08

Google

Vlad
27.02.2018
14:03:40

Roman
27.02.2018
14:04:50
я в питере)
ни разу не был в питере, надо будет устроить питерский бирап и поехать

Evgeniy
27.02.2018
14:05:08

Friedrich
27.02.2018
14:05:30

Evgeniy
27.02.2018
14:11:44
До тех пор, пока ситуация с провайдерами под неткором окончательно не нормализуется.

Friedrich
27.02.2018
14:12:18
А чо ждать-то?
Эдак она никогда не нормализуется, если мы всё время будем ждать!

Evgeniy
27.02.2018
14:13:12
Как знаешь. Я бы подождал, а потом заодно и под неткор портировал, да на новый TP SDK.
https://github.com/fsprojects/FSharp.Configuration/pull/133
Меня вот это смущает.

Friedrich
27.02.2018
14:14:53
Сначала литералы сделаем, потом про неткор подумаем.

Vlad
27.02.2018
14:23:20
А провайдеры сломаны до сих пор? Я думал сайм их починил тогда

Evgeniy
27.02.2018
14:24:41

Sergey
27.02.2018
14:26:16
поправлю =) мы ничего не ждем, надо уже брать и портировать, сначало на новый TPSDK а потом неткор
когда лыжи не едут и странные ошибки сомпиляции, то можно меня пнуть, а потом завусти багу в TPSDK проекте если еще нету - и Дон поможет

Evgeniy
27.02.2018
14:27:22
Хорошо, спасибо!

Sergey
27.02.2018
14:27:42
но хак есть и он должен работать)

Google

Evgeniy
27.02.2018
16:50:50
https://github.com/fable-compiler/fable-react/pull/65

Roman
27.02.2018
16:57:20

Vladimir
27.02.2018
19:00:24
А подскажите плиз, правильно я понимаю что к явно параметризованной функции типа let myfunc<'T> param = ... нельзя применять каррирование?

Roman
27.02.2018
19:03:22

Vladimir
27.02.2018
19:04:51
если написать let x = myfunc 'abc', то вместо 'T подставляется obj автоматом

Klei
27.02.2018
19:05:18
Каррировать можно. Просто вывод типов работает иначе.

Vladimir
27.02.2018
19:07:04
так а как мне прокаррировать чтобы из myfunc получить myfunc2 с уже подставленным param?

Klei
27.02.2018
19:08:09
let x p = myfunc 'abc' p?
Если я правильно помню, то должно подойти, если нет, то пойду перечитывать.

Vladimir
27.02.2018
19:09:50
не понял)

Klei
27.02.2018
19:10:18
Оно работает?

Evgeniy
27.02.2018
19:10:18
Vladimir Можно пример чуть подробнее? :)

Vladimir
27.02.2018
19:10:59
да, вот функция
let inline myFunction<'T> (localizer: IStringLocalizer) =
Enum.GetValues(typeof<'T>):?> 'T[] |> Array.map (fun v -> { Key = v ; Value = localizer.[v.ToString()].Value })
я сейчас ее вызываю через myFunction<MyEnum> localizer
но у меня кучу энамов и приходится постоянно дописывать локалайзер
хотелось бы сделать myFunction2<'T> в которую прокаррирован уже этот общий для всех локалайзер

Klei
27.02.2018
19:14:43
Тут получается не функция. А проп какой-то.

Aleksander
27.02.2018
19:15:21
А если юнит параметр добавить?

Google

Klei
27.02.2018
19:15:26
Вариант с добавлением unit в конце новой функции подойдет?

Evgeniy
27.02.2018
19:16:26
Vladimir
let x<'T> = myfunc<'T> "abc" ?

Vladimir
27.02.2018
19:16:27
может подойдет, только я не очень понимаю что именно добавить)

Klei
27.02.2018
19:16:56
let x () = myFunc localizer

Vladimir
27.02.2018
19:17:03

Klei
27.02.2018
19:17:08
Вроде так.

Fill
27.02.2018
19:17:44
let x (y: unit)

Evgeniy
27.02.2018
19:17:55

Vladimir
27.02.2018
19:18:16

Klei
27.02.2018
19:18:45
Какая ошибка?
x в этом случае является статическим пропом. Оно не может быть реализовано не в дженерик типе.
Можно извернуться со статическим классом конечно.

Evgeniy
27.02.2018
19:19:16
Вы мне ошибку скажите. :)

Vladimir
27.02.2018
19:19:19
Какая ошибка?
Explicit type parameters may only be used on module or member bindings

Klei
27.02.2018
19:20:02
type 'a X = static member x = myFunction<'a> localizer
Попробуй чисто ради эксперимента.

Evgeniy
27.02.2018
19:20:16

Vladimir
27.02.2018
19:20:48
внутри другой функции, сразу после того как локалайзер проинициализировал

Evgeniy
27.02.2018
19:21:04
А, тогда понятно. :)

Klei
27.02.2018
19:22:01