Черт,
У меня проблема с регистрацией хранилища в контейнере единицы.У меня есть следующая конфигурация и классы:
/ * Общий репозиторий: * /
public class Repository<E> : IRepository<E> where E : EntityObject
{
private readonly ObjectContext _ctx;
public ObjectContext Context
{
get { return _ctx; }
}
public Repository(ObjectContext context)
{
_ctx = context;
}
}
/ * Конкретный репозиторий: * /
public class SourceRepository : Repository<Source>
{
public SourceRepository(EntityContext context) : base(context) { }
}
/ * EF созданcontext: * /
public partial class EntityContext : ObjectContext
{
public EntityContext() : base("name=EntityContext", "EntityContext")
{
this.ContextOptions.LazyLoadingEnabled = true;
OnContextCreated();
}
public EntityContext(string connectionString) : base(connectionString, "EntityContext")
{
this.ContextOptions.LazyLoadingEnabled = true;
OnContextCreated();
}
public EntityContext(EntityConnection connection) : base(connection, "EntityContext")
{
this.ContextOptions.LazyLoadingEnabled = true;
OnContextCreated();
}
}
/ * Регистрация типа EntityContext с конструктором без параметров * /
<register type="ObjectContext" mapTo="EntityContext" name="EntityContext">
<constructor/>
</register>
/ * Регистрация для общего репозитория (я не уверен, что эта регистрациянеобходимо) * /
<register type="IRepository[]" mapTo="Repository[]" name="Repository">
<lifetime type="transient" />
<constructor>
<param name="context">
<dependency name="EntityContext"/>
</param>
</constructor>
</register>
/ * Регистрация для конкретного хранилища.Я хочу внедрить конструкторную зависимость типа EntityContext * /
<register type="IRepository[Source]" mapTo="SourceRepository" name="SourceRepository">
<lifetime type="transient" />
<constructor>
<param name="context">
<dependency name="EntityContext"/>
</param>
</constructor>
</register>
При попытке загрузить конфигурацию я получаю сообщение об ошибке:
Не удалось разрешить зависимость, введите= "BL.DataAccess.Repository.SourceRepository", name = "(нет)".Исключение произошло во время: при разрешении.Исключением является: InvalidOperationException - Тип ObjectContext имеет несколько конструкторов длины 1. Невозможно устранить неоднозначность.
Я понимаю, что означает это исключение, но я не знаю, где у меня ошибка в моей конфигурации.
Можете ли вы помочь, пожалуйста?
спасибо.