que tengo una clase abstracta:ninject: Enlaces por omisión y específicos para una clase genérica
public abstract class Validator<T> : IValidator
y un par de clases que implementan esta clase para fines específicos, por ejemplo,
public sealed class NewsValidator : Validator<News>
Ahora, utilizando Ninject que quiero hacer la inyección de dependencias como la siguiente (este código en particular no está funcionando):
Bind<Validator<News>>().To<NewsValidator>();
Bind(typeof(Validator<>)).To(typeof(NullValidator<>));
Así que lo que quiero lograr es que
Validator<News>
Debería estar vinculado a la clase "NewsValidator", pero si se solicita cualquier otra versión no vinculada de esta clase, diga
Validator<Article>
Validator<SomethingElse>
que se debe vincular a una clase predeterminada (NullValidator). Sin embargo, el uso del código utilizado anteriormente arroja una excepción, ya que vincula al Validator < Noticias> tanto al NewsValidator como al NullValidator.
¿Cómo podría implementar esto? Los tipos particulares de la clase genérica deberían vincularse a clases individuales. Todos los otros tipos de la clase genérica que no estaban explícitamente vinculados deben estar vinculados a una clase predeterminada.
¡Estaría muy contento con un par de sugerencias! ¡Gracias!
whoa :) Increíble, que funciona como un encanto. ¡¿Cómo lo supiste?! Incluso google no encuentra mucho cuando busca "IMissingBindingResolver".De todos modos, eso es absolutamente perfecto, ¡muchas gracias! – Oliver