首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Moq和NHibernate如何自动创建派生类型?

Moq和NHibernate如何自动创建派生类型?
EN

Stack Overflow用户
提问于 2009-08-14 00:32:23
回答 3查看 724关注 0票数 3

使用NHibernate时,可以使用虚拟方法定义实体,NHibernate将创建一个跟踪对象更改的代理对象。

在Moq中,框架将神奇地从接口或基类创建派生类型。例如:

代码语言:javascript
复制
var mock = new Mock<IFoo>();
IFoo magicFoo = mock.Object;

这真的很酷。这些框架是如何实现的?它们是否使用反射、泛型、某种动态编译或其他什么?

我意识到这两个项目都是开源项目,我可以对代码进行搜索,但我想在这里找到一个简明的答案--可能还有其他选择。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-08-14 01:18:21

然而,Moq使用了,只是认为它值得添加,还有许多其他允许您创建代理对象的框架。在NHibernate 2.1中,它还允许您使用以下任何一种:

  • 城堡动态代理
  • LinFu框架
  • Spring.NET

这些项目中的每一个都简要地解释了它们是如何实现这一目标的,希望这就是你正在寻找的答案。

票数 3
EN

Stack Overflow用户

发布于 2009-08-14 00:58:57

它们使用反射(确定需要生成什么)和反射发出(动态生成派生类,并为方法释放IL )的组合。.NET提供了这两个API(反射和反射发出)。

票数 2
EN

Stack Overflow用户

发布于 2009-08-14 00:36:05

卡塞尔的DynamicProxy2课程。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1275433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档