@CSharpChatЭта группа больше не существует

Страница 1398 из 1888
Roman
03.07.2017
23:43:54
В общем решает конкретную задачу, а именно - хранитель объектов-помошников. Например, редактор строк, редактор цветов и т. д.

В общем то вопрос в силе. Это DI или нет?

Artem
03.07.2017
23:53:21
Скорее это нечто похожее на IOC контейнер

Который потом можно использовать для di / service locator

Google
Roman
03.07.2017
23:55:28
Понял, спасибо. А как из этого сделать di?

А понял. Вызов его методов и есть di?

Правильно? Или я запутался...

Igor
03.07.2017
23:59:34
Кстати, там можно подскоратить код public TInteface GetObjSingleton<TInteface>() where TInteface : class { _dependecies.TryGetValue(typeof(TInteface), out var result); return result as TInteface; }

Artem
04.07.2017
00:00:50
По факту идея такая - нужно в одном месте (обычно при старте программы) (и называется оно Composition root) положить все реализации в этот самописный контейнер, используя метод Add(...) Далее, когда понадобится ссылка на какой либо объект типа TInterface использовать не new() а сам контейнер, для получения этого объекта Будет нечто похожее ... на Service Locator Сам же DI достигается путем построения конфигурации этого контейнера в начале программы, запроса всех зависимостей для сущности в контурукторе к примеру, а само конструирования сущности должно быть делегировано этому контейнеру, который на основе своей конфигурации будет удовлетворять и разруливать все зависимости

Artem
04.07.2017
00:04:00
class Foo { public Foo(IA a) { _a = a; } private readonly IA _a; } .... Container.Register<A?).As<IA?); Container.Register<Foo?).AsSelf(); .... var foo = Container.Create<Foo?);

Roman
04.07.2017
00:09:10
https://pastebin.com/k3SVW9qx

То есть вот так... Выходит я "изобрёл" Сервис Локатор?

Igor
04.07.2017
00:11:10
Который считается антипаттерном (хотя это спорно) http://blog.ploeh.dk/2010/02/03/ServiceLocatorisanAnti-Pattern/ Кстати, можно код еще сильнее ужать: public TInteface GetObjSingleton<TInteface>() where TInteface : class => _dependecies.TryGetValue(typeof(TInteface), out var x) ? x as TInteface : null;

Artem
04.07.2017
00:11:14
Вообще, если по Моему тут просто пулл заранее созданных и готовых объектов

Artem
04.07.2017
00:13:58
Потому что сами объекты видимо создаются заранее и помещаются туда, а потом по ключу выбираются Все таки все контейнеры, вне зависимости от использования ответственны за создание и управление жизнью сущностей

Google
Artem
04.07.2017
00:14:03
Это ночь, каюсь

Roman
04.07.2017
00:14:26
Артём, в последней версии сам создаёт

Увидел оплошность...

Этот код можно пускать в рабочий проект?

Igor
04.07.2017
00:16:05
Артём, в последней версии сам создаёт
Обычно объекты создаются при запросе, а не добавление.

Artem
04.07.2017
00:16:44
Смотря какую задачу решает , но все для рабочих проектор обычно рекомендуется использовать готовые решения

Roman
04.07.2017
00:16:52
Обычно объекты создаются при запросе, а не добавление.
Детали реализации)) В данной мне нужны только синглтоны поэтому так))

Artem
04.07.2017
00:17:22
Коих полно - autofac, ninject, unity, Windsor, simple injector

Roman
04.07.2017
00:17:33
Готовое это Ninject?

Artem
04.07.2017
00:17:56
Это все различные библиотеки

Roman
04.07.2017
00:18:02
ага, понял. Но как то сложновато)))

Да, я понимаю.

Не все они совместимы с Xamarin

Или руки не из того места...

у меня. Завтра попробую ninject снова.

Вообще все началось с того что мне нужно было где то хранить экземпляр ICrossColorHelper<T>

Artem
04.07.2017
00:22:52
Ну по поводу совместимости с xamarin - не знаю, не сталкивался с ним Повторюсь, обычно все зависит от задачи , если требуется простое решение на 1 раз, то может и не стоит тянуть различного рода библиотеки. В противном же случае, лучше подумать, и посмотреть в сторону готовых решений - экономия времени и нервов

Roman
04.07.2017
00:24:10
Окей, спасибо за содержательные ответы. Многое прояснилось

Igor
04.07.2017
00:24:25
Не все они совместимы с Xamarin
В XF есть свой примитивный servicelocator. А вообще если приспичело, можно servicelocator скачать с nuget (там буквально весь пакет состоит из парочки классов)

Roman
04.07.2017
00:25:47
Про XF да, но у меня Xamarin Native. И там какая то платформа обычно выделывается (как правило iOS)

Google
Roman
04.07.2017
00:26:20
Мне бы open source посмотреть

Что примитивное

Nurbek
04.07.2017
04:24:43
Всем привет, возник такой вопрос. В каких кейсах нужно скрывать метод ключевым словом new? И зачем это нужно, если все равно будет использоваться метод класса, от которого мы наследуемся? Можно с примерами, если возможно?

Вячеслав
04.07.2017
05:48:28
Пасоны такой вопрос: есть вбюмодел внутри которой вертится фоновый поток, запрашивает данные и в контексте UI выводит их на вьюху, поток можно отменить стандартным паттерном CancellationTokenSource. Если я в один момент удаляю ссылку на эту вьюмодел, но перед этим вызываю отмену, но не дожидаюсь завершения потока, то что произойдет в этот момент? число теоретически поток может получить данные и захотеть присвоить их вьюмодел, ссылку на которую я удалил и не факт что объект не удалил GC. Выапдет эксепшн? если да то в каком контексте?

Вячеслав
04.07.2017
05:54:32
там внутри такая хрень while(!toke.IsCancellationrequested) { // читаем данне Application.Current.Dispatcher.Invoke( //обновляем данные) }

есть возможность что цикл пройдет

Вадим
04.07.2017
06:13:15
Привет всем Ребят, а для поиска объекта в xml файле, не десериализуя его полностью подойдёт класс xmldocument? Или есть способ лучше?

Анатолий
04.07.2017
06:16:02
Nikita
04.07.2017
06:20:44
Готовое это Ninject?
выплюнь бяку

Viktor
04.07.2017
06:22:01
Посоны, какой di-контейнер самый быстрый?

Artem
04.07.2017
06:22:30
о, кстати про DI контейнеры. а что сейчас модно? смотрю много кто за autofac топит, но есть же суперский DI из asp net core, который как обычный пакет в нугете и можно вообще везде юзать

Viktor
04.07.2017
06:23:03
у автофака есть фатальный недостаток: там по-ебанутому сделана работа с декораторами

приходится свои огороды вокруг городить

Nikita
04.07.2017
06:24:17
какой вот "самый-самый" вопрос спорный

Google
Artem
04.07.2017
06:27:24
https://github.com/danielpalme/IocPerformance/blob/master/README.md

Friedrich
04.07.2017
06:28:06
Мы сегодня нашли какие-то совершенно кошмарные баги в XmlSerializer: если внутри тега, соответствующего [XmlArrayItem], будут левые дочерние элементы, то внутренний стейт парсера ломается, XmlSerializer.UnknownElement перестаёт генерироваться, и вообще всё становится плохо.

На коре нормально — XmlSerializer.UnknownElement оттуда выпилили, а внутренний стейт парсера больше не ломается.

Vladimir Bondaryuk
04.07.2017
06:29:25
DryIoC один из самых быстрых
+1 мы его используем, очень нравится

Viktor
04.07.2017
06:36:20
Admin
ERROR: S client not available

Viktor
04.07.2017
06:36:50
+1 мы его используем, очень нравится
о, расскажи как там с функционалом, декораторы из коробки есть?

Vladimir Bondaryuk
04.07.2017
06:40:43
Хм, вроде хватает функционала

Про декораторы, если ты об этом: https://bitbucket.org/dadhi/dryioc/wiki/Decorators

Viktor
04.07.2017
06:41:37
о, круто, спасибо

здесь и reuse из коробки, охуенно

Vladimir Bondaryuk
04.07.2017
06:43:06
Да

здесь и reuse из коробки, охуенно
Ещё очень понравилось, как он зависимости резолвит если есть несколько сущностей привязанных к интерфейсу.

container.Register<IFoo, Foo>( Parameters.Of.Type<IDependency>(typeof(TestDependency)); container.Register<IFoo, Foo>( Parameters.Of.Type<IDependency>("idep");

https://bitbucket.org/dadhi/dryioc/wiki/SpecifyDependencyAndPrimitiveValues

Mikhail
04.07.2017
07:02:29
добрый день. Здесь вопросы по WinForms еще не считаются моветоном?)

Friedrich
04.07.2017
07:04:17
Кое-кем считаются, но это не официальная позиция.

Viktor
04.07.2017
07:09:17
щас диды придут

Timur
04.07.2017
07:12:00
добрый день. Здесь вопросы по WinForms еще не считаются моветоном?)
В Gid'а кинь чем-нибудь вкусным, чтобы он отвлёкся, и можешь смело спрашивать.

Google
Hell
04.07.2017
07:32:15
посоны поздравте меня с первым LINQ LEFT JOIN query результат которого сериализуется в JSON передается по айкасу на клиента и там его рендерит кнокаут

Вадим
04.07.2017
07:34:41
Тебе по каким критериям нужно объект найти (имя или наличие/значение атрибута)?
Есть например список исполнителей, у каждого исполнителя есть имя, список альбомов Ищу исполнителя в xml файле по его имени

Анатолий
04.07.2017
07:36:09
Вадим
04.07.2017
07:40:30
Выглядит файл примерно так ''' <Artists> <Artist> <Name>bla bla<Name/> <Albums> ... <Albums/> <Artist/> <Artists/> '''

Чет не вышло

Nikita
04.07.2017
07:42:24
ты его щупал?
на мобилках им пользуюсь в основном

на сервере сейчас стараюсь использовать встроенный от мелкомягких

ибо из коробки всё работает

привет! я пишу на винформс
что само по себе достойно порицания и осуждения

хотя тут в "про" чате был перец, который в 2017-ом году делал проект на винформах из C++/CLI

Вадим
04.07.2017
07:45:03
По отношению к исполнителю имя исполнителя это атрибут, или дочерний элемент?
Вадим Дмитриев: Выглядит файл примерно так ' <Artists> <Artist> <Name>bla bla<Name/> <Albums> ... <Albums/> <Artist/> <Artists/> '

Gid
04.07.2017
07:47:49
Всё, winforms police в чате

Страница 1398 из 1888

Эта группа больше не существует Эта группа больше не существует