我想使用 CodeContracts 来验证通用接口的一些特定实现。我有一个基本的通用接口
public interface IEnityMap<in TSource,out TDest>
{
TDest Map(TSource);
}
我想确定一些特定接口的 CodeContracts。我试图做这样的事情:
[ContractClass(typeof(ContractClass))]
public interface ISpecific: IEntityMap<SourceClass,DestClass>{}
[ContractClassFor(typeof(ISpecific))]
public abstract class ContractClass: ISpecific
{
public DestClass Map(SourceClass source)
{
Contract.Requires(source.SomeProperty!= null);
//Other checks
return default(DestClass);
}
}
我的 Mapping 类实现了通用接口 - IEntityMap<,> (不是 ISpecific),这个合同不起作用。