Контейнер единицы - Передающий в T динамично к методу Твердости

Эти два языка отличны, но они имеют много общего. Много кода C скомпилировало бы очень хорошо на компиляторе C++. На раннем студенческом уровне много кода C++ все еще работало бы над компилятором C.

Примечание, что при некоторых обстоятельствах значение из кода может отличаться очень тонкими способами между этими двумя компиляторами, но я предполагаю это правда при некоторых обстоятельствах даже между различными брендами компилятора C++, если Вы достаточно глупы полагаться на неопределенное или contested/non-conformant поведение.

7
задан Andy Clarke 13 July 2009 в 16:08
поделиться

3 ответа

Finally sorted it, hopefully it'll be of help to someone else!

var type = filter.GetType();
var genericType = typeof(ISearchable<>).MakeGenericType(type);
var searchProvider = _unityContainer.Resolve(genericType);
12
ответ дан 6 December 2019 в 15:25
поделиться

Почему бы не зарегистрировать ваши типы по имени и не разрешить его таким образом?

Container.RegisterType<ITelescopeView, TelescopeView>("type1");
Container.RegisterType<ITelescopeView, TelescopeView2>("type2");

Container.Resolve(ITelescopeView, "type1");

Если вы хотите, чтобы ваши имена могли быть просто полным именем типа или вы могли бы использовать что-нибудь другое. Подход Дмитрия тоже сработает. Но это может привести к более четкому коду.

2
ответ дан 6 December 2019 в 15:25
поделиться

How about...

var sp = container.Resolve(
Type.GetType("ISearchable`1[" + yourGenericTypeHere + "]"));
0
ответ дан 6 December 2019 в 15:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: