您何时认为有必要深入了解开源工具的源代码,以了解您使用的工具集?(nHibernate,StructureMap,Rhino Mocks等)
我想这更像是一个公开咆哮,但为什么我不能用c#来推断我的Id类型?
public EntityT Get<EntityT>(IdT id) where EntityT : EntityObject<IdT>
Run Code Online (Sandbox Code Playgroud)
和Guid作为Id的已定义EntityObject如下:
public Foo : EntityObject<Guid>
Run Code Online (Sandbox Code Playgroud)
继承自如下定义的抽象EntityObject类:
public abstract class EntityObject<IdT>
{
public IdT id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
get方法的用法如下:
IRepository repository = new Repository();
var hydratedFoo = repository.Get<Foo>(someGuidId);
Run Code Online (Sandbox Code Playgroud)
编辑以提供进一步的说明.