我有下面的代碼工作之前,我改變了使用泛型的服務:C#泛型拳擊錯誤
更新:我增加了一些類和接口的信息響應評論:
public class Service<T1,T2> : BaseService, IService<T1>
where T1 : IAuditableTable
where T2 : IAuditableTable
{
private IAzureTable<T1> _T1repository;
private IAzureTable<T2> _T2repository;
public Service(string ds)
{
base.Initialize(ds);
_T1repository = StorageHelper.GetTable<T1>(ds);
_T2repository = StorageHelper.GetTable<T2>(ds);
}
public IEnumerable<AdminDetail> ShowDetails()
{
return base.ShowDetails(_T1repository, _T2repository);
}
...
和
public IEnumerable<AdminSummary> ShowSummary<T1, T2>(
IAzureTable<T1> master, IAzureTable<T2> detail)
where T1 : AuditableTable
where T2 : AuditableTable
{
...
public abstract class AuditableTable : TableServiceEntity, IAuditableTable
{
...
public interface IAzureTable<T> : IInitializer
public interface IService<T>
where T : IAuditableTable
{
IEnumerable<AdminSummary> ShowSummary();
}
private IService<Account> _account;
vm.AdminSummaries = _account.ShowSummary(); << calls the report
當我嘗試編譯我收到以下消息:
類型 'T2' 不能被用作在通用類型的類型參數 'T2' 或 方法「Services.BaseService.ShowSummary < T1,T2>(AzureToolkit.IAzureTable < T1>,AzureToolkit.IAzureTable < T2 >)」。沒有從'T2'到'Storage.Models.AuditableTable'的裝箱轉換或類型參數轉換。
您的'IAzureTable'界面的簽名是什麼? –
2011-12-22 08:33:31
是ShowSummary Service的成員? –
dtb
2011-12-22 08:34:33
@dtb:編譯錯誤說它是基類「BaseService」的成員。 – 2011-12-22 08:36:30