У меня есть общие классы: < /p>
public interface ICommon
{
public string Test();
}
public class Common : ICommon
{
public string Test()
{
return "Common";
}
}
< /code>
Я хочу зарегистрировать его в ihost.
Если я напишу так (один из способов), он будет зарегистрирован: < /p>
services.TryAddScoped(typeof(ICommon), typeof(Common));
< /code>
обслуживаю, как это < /p>
Если я напишу его так (два пути), это получит исключение: < /p>
var types = assembly.GetTypes().Where(t => !t.IsInterface && !t.IsAbstract);
foreach (var type in types)
{
var name = type.Name;
var interfaceType = type.GetInterfaces().ToList().Find(p => p.Name.Equals($"I{name}"));
if (interfaceType is null)
{
continue;
}
services.TryAddSingleton(interfaceType, type);
}
< /code>
обслуживаю, как этот Microsoft.extensions.hosting.9.0.2 Microsoft.extensions.hosting.8.0.1.
Это то же самое. < /P>
Подробнее здесь: https://stackoverflow.com/questions/794 ... reflection
Как зарегистрировать общий тип с использованием microsoft.extensions.hosting с помощью отражения? ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение