Я использую Repository шаблон и с помощьюUnity.MVC5 Тип IUserService не имеет доступный конструктор
container.RegisterTypes(
AllClasses.FromLoadedAssemblies().Where(x =>
x.Namespace != null && (x.Namespace.Contains("TM.Service") ||
x.Namespace.Contains("TM.Repository"))
),
WithMappings.FromMatchingInterface,
WithName.Default,
WithLifetime.PerResolve
);
Каждая вещь работает сначала, но после изменения cshtml файл или даже файл JS во время выполнения, (Начать отладку или Начать без отладки) Я получаю «Тип IUserService не имеет доступного конструктора». ошибка! Это сводит меня с ума, потому что это работало перед изменением файла js или cshtml.
При возникновении этой ошибки перезапуск webapp не работает или даже не строится. Единственный способ снова запустить webapp - это перестроить решение.
btw, мои хранилища и службы находятся в отдельных проектах.
UPDATE:
public class UserService : BaseService<User, IUserRepository>, IUserService
{
public UserService(IUserRepository repository) : base(repository)
{
this.Repository = repository;
}
}
public interface IUserService : IBaseService<User>
{
}
public interface IBaseService<TModel> : IDisposable where TModel : BaseEntity
{
object Create(TModel model);
object Edit(TModel model, string[] blackFields = null, string[] whiteFields = null);
object Delete(int id);
IEnumerable GetAll();
IEnumerable GetGridData();
IEnumerable<TModel> FindBy(Expression<Func<TModel, bool>> predicate);
int Count(Expression<Func<TModel, bool>> predicate);
}
public interface IUserRepository : IBaseRepository<User>
{
}
public interface IBaseRepository<TModel> : IDisposable where TModel : BaseEntity
{
TMContext Context { get; set; }
IDbSet<TModel> Entity { get; set; }
IQueryable<TModel> All { get; }
IQueryable<TModel> AllIncluding(params Expression<Func<TModel, object>>[] includeProperties);
TModel Find(int id);
IEnumerable<TModel> FindBy(Expression<Func<TModel, bool>> predicate);
int Count(Expression<Func<TModel, bool>> predicate);
void Insert(TModel model);
void Update(TModel model, string[] blackFields = null, string[] whiteFields = null);
void Delete(int id);
void Save();
}
и использование:
public class UserController : BaseController<User>
{
public UserController(IUserService service)
{
Service = service;
}
}
Можете ли вы показать класс, реализующий IUserService? – Dismissile
@ Dismissile, я обновил свой вопрос с занятий. Тпх –