ジェネリック インターフェイスの特定の実装を検証するために 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 ではない) を実装していますが、このコントラクトは機能しません。