我正在與以下mockable存儲庫模式試驗:爲什麼`Table`成員不能實現底層接口`ITable`成員?
public interface IEmployeeRepository
{
ITable<Employee> Employees { get; }
}
這表示能夠返回Employee
對象的ITable
的容器。我希望能夠根據存儲庫創建一個模擬對象,並讓我的Linq-to-Sql DataContext
實現存儲庫接口。所以我想我可以只使用部分類聲明我DataContext
類型來實現IEmployeeRepository
,因爲它已經Table<Employee>
類型的自動生成的成員Employees
:
public partial class MyDataContext : IEmployeeRepository { }
我收到以下錯誤消息的結果:
'MyDataContext'沒有實現接口成員 'IEmployeeRepository.Employees'。 'MyDataContext.Employees'不能 實現'IEmployeeRepository.Employees',因爲它沒有 匹配返回類型'System.Data.Linq.ITable'。
但Table<Employee>
繼承ITable<Employee>
,所以它不應該是一個合適的返回類型實現接口?
可能重複[「接口沒有實現」返回派生類型時(http://stackoverflow.com/questions/1121283/interface-沒有實現的時候返回派生類型) – mellamokb 2012-04-09 18:06:13