У меня есть две абстрактные классы и интерфейс для моего Dao:Castle.Windsor регистрации для родовых типов с абстракцией
public abstract class DBEntity
public abstract class GenericDao<T> : IDao<T> where T : DBEntity
public interface IDao<T> where T : DBEntity
Я пытаюсь решить IDao<ModelClass.Model>
в конструкторе моей службы:
this.cvDao = IoC.Resolve<IDao<CV>>();
проблема здесь.
Я пытаюсь зарегистрировать IDao<>
и я уже использовал некоторые методы, такие как:
container.Register(Component.For(typeof(IDao<>))
.ImplementedBy(typeof(GenericDao<>))
.LifestylePerWebRequest());
container.Register(AllTypes.FromAssemblyNamed("cvdb.Dao")
.BasedOn(typeof(IDao<>))
.WithService.Base());
Но все эти методы вызывает то же исключение с тем же эффектом. Мое приложение имеет бесконечный цикл и StackOverFlowException
. Когда я отлаживаю свой код, я видел, что не могу зарегистрировать IDao<>
.
Где происходит исключение/каков его столбец? Существует ли класс, основанный на «GenericDao»? Как выглядит его конструктор? –
Патрик, во-первых, спасибо за вашу любезную помощь. Исключение происходит в IoC из-за перехода в бесконечный цикл между регистрацией IDao и проверкой, является ли контейнер нулевым. Из GenericDao не существует класса. Он создает классы MongoClient и MongoDatabase и MongoServer для использования в классе. – Ayberk