Size: a a a

2021 January 20

A

Anatoly in pro.net
если же у тебя тип - это параметр, то тогда вот так: typeof(IOptions<>).MakeGenericType(type)
источник

A

Anatoly in pro.net
я пока не понял, чем не устроило:
Assembly.GetExecutingAssembly()
   .GetTypes()
   .Where(type => type
       .GetInterfaces()
       .Contains(typeof(IOptions<Bar>)))
источник

LD

Lyserg Ditel in pro.net
Anatoly
я пока не понял, чем не устроило:
Assembly.GetExecutingAssembly()
   .GetTypes()
   .Where(type => type
       .GetInterfaces()
       .Contains(typeof(IOptions<Bar>)))
В том, что типы которые я ищу, не реализуют IOptions, это же врапер для мапинга моделек из appsettings.json

То есть мне нужно:
class Foo {
     private readonly Bar _bar;

     ctor(IOptions<Bar> bar) {
          _bar = bar.Value; -- прочитали и смапили
    }
}

Мне нужны все Bar


Ioptions, это -  https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.options.ioptions-1?view=dotnet-plat-ext-5.0
источник

A

Anatoly in pro.net
ну тогда тебе надо найти все типы, в которых есть контрукторы, которые принимают IOptions
источник

A

Anatoly in pro.net
а зачем, если не секрет?
источник

LD

Lyserg Ditel in pro.net
Да в целом из желания автоматизировать создания словарика

interface Bar {
    int Id;
}

class Baz : Bar {}

class Foo : Bar {}


Хочу словарик <int(id грубо говоря), IOptions<Bar>>, для чего уже это нужно - опустим
источник

DP

Denis Petukhov in pro.net
Так прими массив всех опций
источник

IC

Ilya Chernoudov in pro.net
Lyserg Ditel
Да в целом из желания автоматизировать создания словарика

interface Bar {
    int Id;
}

class Baz : Bar {}

class Foo : Bar {}


Хочу словарик <int(id грубо говоря), IOptions<Bar>>, для чего уже это нужно - опустим
А ioptionsmonitor тебе не подойдёт?
источник

IC

Ilya Chernoudov in pro.net
Есть именованные инстансы
источник

LD

Lyserg Ditel in pro.net
Denis Petukhov
Так прими массив всех опций
Его я и хочу создать
источник

DP

Denis Petukhov in pro.net
ТАк цель то в чем?
источник

LD

Lyserg Ditel in pro.net
Цель ? Руками в json-ку добавили новый IBar тип, добавили его модельку, в остальном коде ничего менять не нужно
источник

DP

Denis Petukhov in pro.net
И у тебя в тексте ошибки всё сказано кстати
источник

LD

Lyserg Ditel in pro.net
Denis Petukhov
И у тебя в тексте ошибки всё сказано кстати
Да, я поэтому и пришел сюда, ибо не смог это обойти
источник

DP

Denis Petukhov in pro.net
Lyserg Ditel
Цель ? Руками в json-ку добавили новый IBar тип, добавили его модельку, в остальном коде ничего менять не нужно
В json'е отсутствуют интерфейсы
источник

IC

Ilya Chernoudov in pro.net
Lyserg Ditel
Цель ? Руками в json-ку добавили новый IBar тип, добавили его модельку, в остальном коде ничего менять не нужно
А словарь зачем?
источник

LD

Lyserg Ditel in pro.net
Ilya Chernoudov
А словарь зачем?
источник

IC

Ilya Chernoudov in pro.net
Можешь описать идею в общем случае
источник

DP

Denis Petukhov in pro.net
Lyserg Ditel
Цель ? Руками в json-ку добавили новый IBar тип, добавили его модельку, в остальном коде ничего менять не нужно
Это решение. Проблема то какая?
источник

IC

Ilya Chernoudov in pro.net
Это решение, оно не отвечает на вопрос зачем
источник