Ich hoffe, der Titel macht zumindest Sinn.Registrieren Sie in Windsor eine offene generische Typkomponente für generischen Service des offenen generischen Typs
Ich habe die Situation wie in dem Code unten. Verläuft der Test erfolgreich, aber ich würde
GenericCommandHandler<>
als offene generische Typ als Implementierung für
IHandler<GenericCommand<>>
ich mit dem, was unten leben können, registrieren lassen möchten, da die Anzahl der Typen GenericCommandHandler gegeben ist begrenzt und Ich kann sie alle einzeln registrieren, möchte aber etwas "automatisierter".
using Castle.MicroKernel.Registration;
using Castle.Windsor;
using NUnit.Framework;
[TestFixture]
public class Class1
{
[Test]
public void t()
{
using(var container = new WindsorContainer())
{
// HOW TO REGISTER IT AS OPEN GENERIC TYPE?
container.Register(
Component.For<IHandler<GenericCommand<object>>>()
.ImplementedBy<GenericCommandHandler<object>>());
var handler = container.Resolve<IHandler<GenericCommand<object>>>();
}
}
}
public interface IHandler<TCommand>
{
void Handle(TCommand o);
}
public class GenericCommand<T>
{
}
public class GenericCommandHandler<T> : IHandler<GenericCommand<T>>
{
public void Handle(GenericCommand<T> o)
{
}
}
Jetzt erinnere ich mich, Ihren Artikel und Jimmy Miller zu lesen. Danke, das sollte funktionieren. – Artur