所以,我在这里遇到一些问题。
假设我有:
public class Repository<TEntity>
where TEntity : class
{
public abstract void Add(TEntity entity);
// ...and so on...
}
现在我想定义一个契约类,如下所示:
public class RepositoryContracts<TEntity> : Repository<TEntity>
where TEntity : class
{
public void Add(TEntity entity)
{
Contract.Requires(entity != null);
}
// ...etc...
}
现在,我必须使用ContractClassAttribute和ContractClassForAttribute标记这些类。问题是,这不起作用:
[ContractClassFor(typeof(Repository<TEntity>))] // what is TEntity?! error!
因此,问题归结为:当这两个类是通用的时,如何将这两个类链接在一起?
答案 0 :(得分:5)
原来这是this question的副本,有点。
typeof(Repository&lt;&gt;)语法对我来说似乎不起作用,但事实证明,typeof(Repository&lt;,&gt;)可以解决问题,因为有两种类型参数。
结束问题,并在the previous one添加评论。