2017-03-17 67 views
0

我面臨着此類問題的我的應用程序裏面:統一解決C#

public interface IOrderServiceTest1 : IEntityBaseRepository<Order> 
{ 
} 

public class OrderServiceTest1 : IOrderServiceTest1 
{ 
} 

在我的網頁API配置類我試圖解決此問題:當我嘗試

var container = new UnityContainer(); 
container.RegisterType(typeof(IEntityBaseRepository<>), typeof(EntityBaseRepository<>)); 
container.RegisterType<IOrderServiceTest1, OrderServiceTest1>(new HierarchicalLifetimeManager()); 

然後解析錯誤顯示出來:在解析:當發生

IOrderServiceTest1 myServiceInstance = container.Resolve<IOrderServiceTest1>(); 

例外。

異常是:InvalidOperationException - 當前類型.... Data.Repositories.EntityBaseRepository`1 [... Entities.Order]是抽象類,不能構造。你是否缺少類型映射?

這裏IEntityBaseRepository:

public interface IEntityBaseRepository<T> where T : class, IEntityBase, new() 
{ 
    IQueryable<T> AllIncluding(params Expression<Func<T, object>>[] includeProperties); 
    IQueryable<T> All { get; } 
    IQueryable<T> GetAll(); 
    T GetSingle(int id); 
    IQueryable<T> FindBy(Expression<Func<T, bool>> predicate); 
    void Add(T entity); 
    void Delete(T entity); 
    void Edit(T entity); 
} 

我能有一定的幫助,以解決這種問題?

THX

+0

顯示的'IEntityBaseRepository' –

+0

@CallumLinington:公共接口IEntityBaseRepository 其中T:類,IEntityBase,新的(){ 沒有 – Goba

+0

,實施添加到原來的問題。 –

回答

0

首先,消息說,你解決你的界面IEntityBaseRepository與抽象類EntityBaseRepository,你不能這樣做,因爲抽象類不能被構造了,聲明子類和創建它們的實例。 第二,爲什麼會出現此錯誤,因爲您解析了接口並且它是基本接口,所以它會查看您的繼承鏈,並首先解析您的基本接口。