我有下面的代码工作之前,我改变了使用泛型的服务: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