Wie registriere ich einen generischen Typ mit Microsoft.extensions.hosting durch Reflexion?

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Wie registriere ich einen generischen Typ mit Microsoft.extensions.hosting durch Reflexion?

by Anonymous » 13 Feb 2025, 06:25

Ich habe generische Klassen: < /p>
public interface ICommon
{
public string Test();
}

public class Common : ICommon
{
public string Test()
{
return "Common";
}
}
< /code>
Ich möchte es an IOHost registrieren.services.TryAddScoped(typeof(ICommon), typeof(Common));
< /code>
Servicedescriptor wie dieses < /p>
Wenn ich es so schreibe (zwei Wege), erhält es eine Ausnahme: < /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>
Servicedescriptor wie dieses < /p>
Gibt es eine Möglichkeit, generische Klassen durch Reflexion zu registrieren? Microsoft.extensions.hosting.9.0.2 microsoft.extensions.hosting.8.0.1.

Es ist dasselbe. < /P>

Top