Я продолжаю получать сообщение об ошибке при попытке разрешить свои репозитории.
Ни один из конструкторов, найденных с «Открытыми флагами привязки» для типа, не может быть вызван с доступными службами и параметрами:
Не удается разрешить параметр «Repository.Data.INHibernateSession nHibernateSession» конструктора «Void .ctor (Repository.Data.INHibernateSession)».
Global.asax
builder.RegisterAssemblyTypes(assembly).Where(t => typeof(IDependency).IsAssignableFrom(t)).
AsImplementedInterfaces().InstancePerLifetimeScope();
builder.RegisterAssemblyTypes(assembly).Where(t => typeof(ISingletonDependency).IsAssignableFrom(t)).
AsImplementedInterfaces().SingleInstance();
builder.RegisterAssemblyTypes(assembly).Where(t => typeof(ITransientDependency).IsAssignableFrom(t)).
AsImplementedInterfaces().InstancePerDependency();
builder.RegisterGeneric(typeof(Repository<>)).As(typeof(IRepository<>)).InstancePerDependency();
тогда у меня есть мой синглтон завод
public interface INhibernateFactory : ISingletonDependency
{
ISessionFactory SessionFactory { get; }
}
тогда мой экземпляр за всю жизнь
public interface INHibernateSession : IDependency
{
ISession Session { get; }
}
public class NHibernateSession : IDependency
{
private ISession _session;
private readonly ISessionFactory _sessionFactory;
public NHibernateSession(ISessionFactory sessionFactory)
{
_sessionFactory = sessionFactory;
}
тогда в моем Универсальном хранилище
public class Repository<T> : IRepository<T> where T : class
{
private readonly INHibernateSession _nHibernateSession;
public Repository(INHibernateSession nHibernateSession)
{
_nHibernateSession = nHibernateSession;
}
public ISession Session
{
get { return _nHibernateSession.Session; }
}
Кажется, все, что я делаю, это создаю синглтон, вставляю это в сессию, а затем внедряю в хранилище. (все мои другие зависимости работают нормально)
Ценю, если кто-то может указать мне правильное направление, почему это не решится, я довольно озадачен?