5 .net c# generics code-contracts
所以,我这里有一点问题.
假设我有:
public class Repository<TEntity>
where TEntity : class
{
public abstract void Add(TEntity entity);
// ...and so on...
}
Run Code Online (Sandbox Code Playgroud)
现在我想定义一个契约类,如下所示:
public class RepositoryContracts<TEntity> : Repository<TEntity>
where TEntity : class
{
public void Add(TEntity entity)
{
Contract.Requires(entity != null);
}
// ...etc...
}
Run Code Online (Sandbox Code Playgroud)
现在,我必须使用ContractClassAttribute和ContractClassForAttribute标记这些类.问题在于,这不起作用:
[ContractClassFor(typeof(Repository<TEntity>))] // what is TEntity?! error!
Run Code Online (Sandbox Code Playgroud)
因此,问题归结为:当它们是通用的时,如何使用这些属性将这两个类链接在一起?