当在编译时未知类型参数但是在运行时动态获取时,调用泛型方法的最佳方法是什么?
考虑以下示例代码 - 在Example()方法内部,GenericMethod<T>()使用Type存储在myType变量中调用的最简洁方法是什么?
public class Sample
{
public void Example(string typeName)
{
Type myType = FindType(typeName);
// What goes here to call GenericMethod<T>()?
GenericMethod<myType>(); // This doesn't work
// What changes to call StaticMethod<T>()?
Sample.StaticMethod<myType>(); // This also doesn't work
}
public void GenericMethod<T>()
{
// ...
}
public static void StaticMethod<T>()
{
//...
}
}
Run Code Online (Sandbox Code Playgroud) 随着我深入研究DbContext,DbSet和相关接口,我想知道为什么你需要围绕这些实现实现一个单独的"通用"存储库?
它看起来像DbContext和IDbSet做你需要的一切,并在DbContext中包含"工作单元".
我在这里遗漏了什么,或者似乎人们喜欢无缘无故地添加另一层依赖.
对不起,我不知道存储库模式,单元测试和orm工具.
我一直在研究单元测试和存储库模式,得出了一些结论,我想知道我是不对的.
存储库模式有助于在控制器中替换单元测试,例如使用它,对吧?因为创建上下文(在EF中)或会话(在NH中)更难,对吧?存储库本身未经过测试?为什么?
使用EntityFramework或NHibernate与存储库模式,如果我想测试我的存储库,我需要进行集成测试?因为如果我使用我的上下文/会话的假实现,我没有进行真正的测试?因为上下文/会话本身就是存储库(我的意思是它们实现了添加,删除,编辑,GetById,GetAll等的真实逻辑)?
使用EF或NH的存储库模式就像一个包装器?(不仅是一个包装器,我知道这是域的导入概念.)
.net nhibernate unit-testing domain-driven-design entity-framework