这是一个很值得重复的问题,但使用的城堡动态代理我使用李林甫我的获取代理对象

的基本类型

我使用automapper创建我寄给我在Asp.net MVC视图模型的接口代理。我的问题是,从我可以告诉大家,MVC的默认MetadataProvider在模型上调用.GetType()找到属性和元数据。

所以会发生什么是EditorFor()和DisplayFor()模板不产生任何领域。我需要做的是找到代理目标类型,然后生成我的模板。我知道我可以解析的名称和使用的GetType(“thename”),但不知道是否有一个简单的方法。

有帮助吗?

解决方案

LinFu.DynamicProxy不直接暴露代理的基本对象。它只是简单地重定向每个方法调用的IInterceptor实现的实例。为了访问底层对象,你必须搞清楚当前拦截器实例是否真的有一个目标类实例,还是不行。

如果您正在使用AutoMapper,据我所知的工作,他们使用LinFu.DynamicObject做了很多鸭子的录音,并通过LinFu.DynamicObject生成动态类型的主叫的GetType()甚至不会让你的实际类型在你的领域模型 - 它只是让你已经从字面上李林甫本身鸭粘贴在一起的物体。

其他提示

获取最新AutoMapper - 它使用城堡动态代理,你已经知道如何从那里得到这样的:)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top